【发布时间】:2019-09-06 22:51:26
【问题描述】:
两者有什么区别(如果有的话):
#define BUF (8)
和
#define BUF 8
我在 c 编程方面不是很有经验,也从未见过只有 1 个数字的 #define 而不是将它放在括号中。
PS:代码是在 64 位 linux 系统上使用带有 -m32 标志的 gcc 编译的。所以最终的二进制文件是 32 位 ELF 可执行文件。
【问题讨论】:
-
不,没有。当您想指定操作顺序或使您的代码更清晰时,您可以使用
()。 -
@Simon 略有不同。例如。
float x = sin BUF;将在一种情况下编译,但在另一种情况下不会编译。 -
是的..我相信那里的答案非常有用。我为自己没有找到这个而感到羞耻。
-
@Simon:是的,有区别。如果其他一些宏使用
##和BUF,8可能会产生一个有效的令牌,而(8)不会。
标签: c