关于C ++预处理器的一些问题:
答案 0 :(得分:6)
关于#3,预处理器负责从代码中删除注释,我认为不允许将它们留在其中。在任何情况下,这都是特定于C ++编译器的标志。你正在使用所以你应该指定你的环境。
答案 1 :(得分:4)
问题2)和3)没有太大意义,正如其他人所概述的那样。
关于问题1,我假设您的意思是多行宏,可以这样做:
#define FOO line 1 \
line 2 \
line 3 \
... \
line n
请注意最后一行丢失的\
!
答案 2 :(得分:2)
如何让预处理器进入预处理代码的新行?
为什么?
如何让预处理器在预处理代码中插入制表符或多个空格?
为什么?
如何让预处理器在预处理代码中插入注释?
为什么?
预处理器是 pre 处理器,它在代码转换为机器代码之前运行。要添加的空格和注释不会影响应用程序的输出。
如果你试图控制gcc -E
的输出,或类似的东西,那么你就会咆哮错误的树。
答案 3 :(得分:2)
你做错了...... PREPROCESSOR不是为了那个目的。
答案 4 :(得分:2)
1)使用反斜杠,Tim指出
2)我认为你不能
3)
#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)
修改强>
2警告
1)不适用于所有编译器。
2)不要这样做,这是愚蠢的。