【问题标题】:What does “# 1 "/usr/include/stdio.h" 1 3 4” mean in "gcc -E" output? [duplicate]“#1”/usr/include/stdio.h“1 3 4”在“gcc -E”输出中是什么意思? [复制]
【发布时间】:2013-05-31 05:02:43
【问题描述】:

参见以下示例:

$ cat foo.c
#include <stdio.h>

int main()
{
    return 0;
}
$ gcc -E foo.c | head
# 1 "foo.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "foo.c"
# 1 "/usr/include/stdio.h" 1 3 4
# 36 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/sys/feature_tests.h" 1 3 4
# 30 "/usr/include/sys/feature_tests.h" 3 4
#pragma ident "%Z%%M%   %I%     %E% SMI"

$

我尝试了 Google,但我不知道应该使用哪些关键字进行搜索。有文档链接吗?

【问题讨论】:

    标签: c gcc


    【解决方案1】:

    它们是用于识别特定代码行来自哪个源文件和行的线标记。例如,它们可用于生成更准确的诊断消息。文档链接:

    1. Preprocessor Output
    2. Line Control

    如果您愿意,可以使用 -P 选项省略它们。

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 2017-08-28
      • 2020-04-11
      • 2013-01-03
      • 2019-10-29
      • 1970-01-01
      • 2020-07-05
      • 2014-12-01
      • 2020-01-01
      相关资源
      最近更新 更多