是否可以将几个#define
预处理程序命令放在C?
例如,而不是:
#define a 1
#define b 2
#define c 3 ...
就是这样:
#define a1, b2, c3
答案 0 :(得分:5)
不,预处理器阶段只是文本替换,意味着解析起来很简单。因此所有预处理器指令
#
特别是通过#define
的宏定义延伸到行的结尾,并且预处理阶段将无法决定您打算一次声明多个宏。在你提出的语法中,宏a
的内容实际上是, b2, c3
,这可能不是你想要的:)
答案 1 :(得分:3)
没有。根据最新的C99标准,http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf第146页,以及当前的C11标准,http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1570.pdf第161页,以#define
开头的控制行的语法只有一个标识符(不计算标识符列表中的类似函数的参数)和新行字符之前的一个替换列表。