是否可以在C中放置多個#define
預處理器命令?#在C中的一行上定義多個常量
例如,而不是這樣的:
#define a 1
#define b 2
#define c 3 ...
只是這樣的:
#define a1, b2, c3
是否可以在C中放置多個#define
預處理器命令?#在C中的一行上定義多個常量
例如,而不是這樣的:
#define a 1
#define b 2
#define c 3 ...
只是這樣的:
#define a1, b2, c3
號,預處理階段只是文本替換並意味着是簡單的解析。因此,所有的預處理指令
#
只做一件事情的結束一個通過#define
的宏定義會一直延續到該行的末尾,並且預處理階段將無法決定您打算一次聲明多個宏。在你提出宏觀a
的內容實際上將, b2, c3
這可能不是你想要的:)
號根據最新的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
開頭的控制行的語法只有一個標識符(不包括標識符列表中的函數類參數)和一個替換列表在換行符之前。
當前C標準是C11,它對應於同一站點的文檔'n1570.pdf'。 – 2014-10-08 06:53:21
@JensGustedt D'oh!謝謝,我會更正答案。 – 2014-10-08 06:54:24
如果評論不一定是15個字符:否 – user3386109 2014-10-08 06:40:37
@pala,您的評論的第二部分是完全誤導。這不是一個變量。 – 2014-10-08 06:42:28
如果你想要常量:'int a = 1,b = 2,c = 3;' – 2014-10-08 07:02:18