【发布时间】:2019-11-15 14:12:44
【问题描述】:
我发现这两个宏之间没有区别,除了第一个宏周围的括号。
是可读性问题还是处理运算符优先级的一种方式?
#define TAM_ARRAY(a) (sizeof(a)/sizeof(*a))
#define TAM_ARRAY2(a) sizeof(a)/sizeof(*a)
【问题讨论】:
-
is it a way to deal with the priority of operators是的。一个简单的例子是宏#define sum(a,b) a + b,它在代码sum(1, 2) * 3中将被翻译成1 + (2 * 3),这不是大多数人所期望的。
标签: c c-preprocessor