可能是因为在宏函数中某个地方缺少了一个闭括号。需要检查宏定义是否完整且正确。例如:
#define MAX(a, b) (a > b ? a : b)
在使用该宏函数时,如果缺少一个闭括号会出现问题:
int x = MAX(3, 5; //错误,应该是 MAX(3, 5)
因此,在使用宏函数时要特别注意缺少闭括号的情况。
上一篇:编译器为什么将类视为抽象?
下一篇:编译器为什么无法对手写的memcmp()进行优化?