#line directive
文件名和行信息
更改预处理程序中的当前文件名和编号。
句法
#line lineno | (1) | |
---|---|---|
#line lineno "filename" | (2) | |
解释
1%29将当前预处理程序行号更改为lineno。宏的扩展__LINE__
除此之外,还将扩展到lineno,再加上此后遇到的实际源代码行数。
2%29还将当前的预处理器文件名更改为文件名。宏的扩展__FILE__
从这一点起将产生文件名。
任何预处理令牌%28宏常量或表达式%29允许作为参数#line
只要它们展开为有效的十进制整数,就可以选择跟随有效的字符串。
注记
这个指令被一些自动代码生成工具使用,它们从用另一种语言编写的文件中生成C++源文件。在这种情况下,#line
指令可以插入生成的C++文件中,引用行号和原始%28可编辑%29源文件的文件名。
例
二次
#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.
二次
另见
文件名和行信息的文档
*。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。