#define Add(a,b) (a+b) //定义个宏
int main()
{
int d = 3;
printf("%d",d * Add(1,2));
return 0;
}
如果定义成#define Add(a,b) (a+b); //定义个宏
编译时出现:
error C2143: syntax error : missing ')' before ';'
error C2059: syntax error : ')'
因为宏是符号完全替换,所以定义成带分号的后,d * Add(1,2)就成了d * Add(1,2); 所以就报错;
本文探讨了C语言中宏定义的使用技巧及其注意事项,特别是关于宏定义结尾是否加分号的问题,解释了不当的分号使用如何导致编译错误,并通过示例代码展示了正确的宏定义方法。
1358

被折叠的 条评论
为什么被折叠?



