Он сообщает компилятору, откуда на самом деле появилась следующая строка. Обычно это добавляет только препроцессор C, например, при включении файла он сообщает компилятору (который в основном видит только один поток данных), что мы смотрим на другой файл.
Это может звучать странно, но препроцессор просто вставляет файлы заголовков, в которые вы указываете свои включения, и компилятор работает над всем этим (все файлы заголовков объединяются вместе с вашим исходным кодом), вы можете проверить результат препроцессора. stage при использовании gcc с gcc -E myfile.c
. Там вы заметите, что он добавляет директиву #line
всякий раз, когда вы включаете файлы, а также всякий раз, когда он уменьшает объем текста, подаваемого в компилятор (например, большое количество комментариев может быть уменьшено до одной директивы #line
, пропуская впереди)
Он также используется другими программами, такими как bison / yacc, чтобы сообщить вам, что проблема (если есть проблема с компиляцией) связана с вашим файлом правил в определенной строке, что в противном случае компилятор не смог бы сделать , поскольку bison / yacc генерирует c-файлы.