代码之家  ›  专栏  ›  技术社区  ›  niXman

关于C++预处理器的几个问题:

  •  -3
  • niXman  · 技术社区  · 14 年前

    关于C++预处理器的几个问题

    1. 如何使预处理器进入预处理代码的新行?
    2. 如何使预处理器在预处理代码中插入一个制表符或多个空格?
    3. 如何使预处理器在预处理代码中插入注释?
    5 回复  |  直到 8 年前
        1
  •  2
  •   Benjamin Lindley    14 年前

    1) 使用反斜杠,正如蒂姆指出的那样

    2) 我不认为你能

    三)

    #define COMMENT /##/ this is a comment
    #define CPPCOMMENT(c) /##/ c
    #define CCOMMENT(c) /##* c *##/
    
    COMMENT
    CPPCOMMENT(This is a c++ comment)
    CCOMMENT(This is a c comment)
    

    编辑

    1) 不适用于所有编译器。

        2
  •  6
  •   Motti    14 年前

    关于#3,预处理器的职责是 去除 代码中的注释,我认为不允许将它们留在中。无论如何,这将是一个特定于你正在使用的C++编译器的标志,所以你应该指定你的环境。

        3
  •  4
  •   Tim Čas    14 年前

    问题2)和3)没有太多意义,正如其他人所概述的那样。

    关于问题1,我假设您的意思是多行宏,可以这样做:

    #define FOO line 1 \
        line 2  \
        line 3  \
        ...     \
        line n
    

    \ 在最后一行!

        4
  •  2
  •   ta.speot.is    14 年前

    为什么?

    如何使预处理器在预处理代码中插入一个制表符或多个空格?

    如何使预处理器在预处理代码中插入注释?

    预处理器是 之前 处理器,它在代码转换为机器代码之前运行。要添加的空白和注释不会影响应用程序的输出。

    gcc -E ,或者类似的东西,那你就找错树了。

        5
  •  2
  •   AbstractProblemFactory    14 年前