C语言中#line的含义是什么?

Yon*_*ing 23 c c-preprocessor preprocessor-directive

什么意思#lineÇ语言?它会在哪里使用?

fal*_*tro 33

它告诉编译器实际来自以下行的位置.通常只有C预处理器添加这些,例如,当包含文件时,它告诉编译器(基本上只看到一个数据流)我们正在查看不同的文件.

这可能听起来很奇怪,但是预处理器只是在您指定包含的地方插入头文件,并且编译器可以处理整个事物(所有头文件与源代码连接在一起),如果使用,您可以检查预处理器阶段的结果gcc用gcc -E myfile.c.在那里你会注意到它#line在你包含文件的时候添加了一个指令,并且每当它减少了输入到编译器的文本量时(例如大量的注释可以减少到单个#line指令,跳过前面)

它也被其他程序使用,比如bison/yacc告诉你问题(如果有编译问题)与你在特定行的规则文件有关,否则编译器将无法做到这一点,因为bison/yacc生成c文件.


cod*_*ict 15

它被称为预处理器行控制指令.

如果使用指令,则扩展两者__FILE____LINE__进行更改#line.它使编译器将下一个源行的行号视为指定的数字.

它的主要用途是使编译器提供更有意义的错误消息.

您可以在IBM的文档中找到更多解释和用法示例.