Filename and line information
Материал из cppreference.com
< cpp | preprocessor
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
Включает в других исходных файлов в текущем исходном файле на линии сразу после директивы.
Оригинал:
Includes other source file into current source file at the line immediately after the directive .
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Содержание |
[править] Синтаксис
#line lineno
|
(1) | ||||||||
#line lineno " filename"
|
(2) | ||||||||
[править] Объяснение
Изменение текущего препроцессора номер строки в lineno. разложения макро __LINE__ за этой точкой будет расширяться lineno плюс количество фактически исходный код линии встречаются так.
2) Оригинал:
Changes the current preprocessor line number to lineno. Expansions of the macro __LINE__ beyond this point will expand to lineno plus the number of actual source code lines encountered since.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Также изменяет текущее имя файла препроцессором filename. разложения макро __FILE__ С этой точки будет производить filename.
Оригинал:
Also changes the current preprocessor file name to filename. Expansions of the macro __FILE__ from this point will produce filename.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Любое предварительной обработки маркеров (макро константы или выражения) допускается в качестве аргументов
#line
тех пор, как они расширяются до целое число, десятичное необязательно после допустимую строку символов.Оригинал:
Any preprocessing tokens (macro constants or expressions) are permitted as arguments to
#line
as long as they expand to a valid decimal integer optionally following a valid character string.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Заметки
Эта директива используется некоторые автоматическая генерация кода инструменты, которые производят C + файлы + источник из файла, написанного на другом языке. В этом случае,
#line
директивы могут быть вставлены в создаваемый C + + файл ссылается номер строки и имя файла оригинала (человек-редактирования) исходных файлов.Оригинал:
This directive is used by some automatic code generation tools which produce C++ source files from a file written in another language. In that case,
#line
directives may be inserted in the generated C++ file referencing line numbers and the file name of the original (human-editable) source file.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Пример
Запустить этот код
#include <cassert> #define FNAME "test.cc" int main() { #line 777 FNAME assert(2+2 == 5); }
Вывод:
test: test.cc:777: int main(): Assertion `2+2 == 5' failed.