在C语言中如何在一行上定义多个常量

4

在C语言中,是否可以将多个#define预处理命令放在一起?

例如,不是这样写:

#define a 1
#define b 2
#define c 3 ...

只需要这个:
#define a1, b2, c3 

4
如果评论不必要达到15个字符:不。 - user3386109
@pala,你评论的第二部分完全是误导性的。这不是一个变量。 - Jens Gustedt
如果你想要常量:int a = 1, b = 2, c = 3; - phuclv
2个回答

6

当前的C标准是C11,对应于同一网站上的文档n1570.pdf - Jens Gustedt
@JensGustedt 哎呀!谢谢,我会更正答案。 - Chris Culter

5
不,预处理器阶段只是文本替换,旨在易于解析。因此,所有预处理指令:
- 从一行开始(在可能的空格后面)以 # 开头 - 结束于该行的末尾 - 每次只执行一个操作
特别地,通过 #define 进行的宏定义会扩展到该行的末尾,预处理阶段无法确定您是否打算一次声明多个宏。在您提出的语法中,宏 a 的内容实际上将是 b2,c3,这可能不是您想要的结果 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接