是什么意思 #line 在里面 C 语言?它会用在哪里?

有帮助吗?

解决方案

它告诉其中以下行实际上是从附带的编译器。它通常是只有C预处理,增加了这些,例如,包括一个文件时,它告诉我们在寻找一个不同的文件,编译器(其基本上只看到一个数据流)。

这可能听起来很奇怪,但预处理器只需插入头文件,您可以指定你的包括,编译器会作用于整个事情(连同您的源代码级联的所有头文件),您可以检查预处理的结果如果使用gcc与gcc -E myfile.c阶段。在那里,你会发现它增加了一个#line指令时,你有文件,也只要它减少文字输入到编译器的金额(如大量的评论可能被减少为单个#line指令,直接跳到)

它也可用于其他程序,如野牛/ yacc的告诉你,这个问题(如果有一个编译问题)在一个特定的线路,该编译器,否则将无法做到与你的规则文件作为野牛/ YACC生成C-文件。

其他提示

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

两者的扩展 __FILE____LINE__ 被改变,如果 #line 使用指令。它使编译器将下一个源代码行的行号视为指定的数字。

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

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

这是一个编译关键字:

#行,您可以修改编译器的行号和(可选)的名称输出错误和警告的文件。这个例子说明了如何报告与行号关联的两个警告。在200的#line指令迫使行号为200(虽然默认值为#7),直到下一个#line指令,文件名会被报告为“特殊”。在默认的#line指令返回的行号到其默认的编号,它计数即由先前的指令重新编号的线“。

它允许你改变文件的表观行号。

在唯一使用我能想到的它是使经过漫长的系列多行宏的行号清醒。

用法是:

#line 42

它主要用于提供文件名和源文件的行号从其中一个C文件(它是头或实现)已创建。鉴于此,编译器会发出这暗示了源文件,而不是在生成的文件诊断。

预处理器也使用此在一个预处理文件包括报头已经这些扩展的暗示。

#是字符串injing符号到处理器C和C ++

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top