首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

#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源文件的文件名。

二次

代码语言:javascript
复制
#include <cassert>
#define FNAME "test.cc"
int main()
{
#line 777 FNAME
        assert(2+2 == 5);
}

二次

产出:

二次

代码语言:javascript
复制
test: test.cc:777: int main(): Assertion `2+2 == 5' failed.

二次

另见

文件名和行信息的文档

*。

代码语言:txt
复制
 ? cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com