C预处理器添加了自己的注释

时间:2010-02-22 08:23:22

标签: gcc c-preprocessor

  1. 如果有的话,下面有什么(明显被GCC忽略)的评论叫做?
  2. 我如何摆脱它们?
  3. 下面:

    eisbaw@leno:~/GCC$ cpp < /dev/null
    # 1 "<stdin>"
    # 1 "<built-in>"
    # 1 "<command-line>"
    # 1 "<stdin>"
    eisbaw@leno:~/GCC$ 
    

2 个答案:

答案 0 :(得分:3)

它们被称为线性标记,您可以使用-Pcppgcc省略它们。

cpp手册的Preprocessor Output部分对其进行了描述。

我同意user30997你可能不想摆脱它们。它们被gcc忽略,因为它们不会影响编译过程,但是当代码编译不正确时,它们确实提供了有用的诊断信息。

答案 1 :(得分:2)

你可能不想摆脱它们。它们由预处理器插入,以便任何读取此编译单元的编译器都可以确定生成它检查的任何行的源文件和行号。没有它,你就无法得到有意义的错误,例如“main.cpp第7行的语法错误:预期的分号”。或者其他什么。

如果你真的想抛弃它们,你总是可以写一些快速的东西来杀死以“#”开头的东西。