问题描述
- C语言的红,为什么出错了
-
#include#define add(x,y) x+y;
void main()
{
int x = 1;
int y = 2;
int z = add(x+y);
printf("%d", z);
}
解决方案
第一: #define add(x,y) (x+y); 最好写成: #define add((x),(y)) ((x)+(y));
第二:对宏 add 的调用,需要按宏定义的格式,如:add(x,y);
解决方案二:
int z = add(x+y);
->
int z = add(x,y);
解决方案三:
#define add(x,y) (x+y);
调用宏的那句不对,应该是 int z = add(x,y);
解决方案五:
宏调用的时候写成add(x,y)。另外你的宏定义中末尾的;号是不是应该去掉呢?
解决方案六:
宏调用的时候写成add(x,y)。另外你的宏定义中末尾的;号是不是应该去掉呢?
解决方案七:
你的定义跟调用都有问题。好好看看你的代码。以上几楼说的都不错
时间: 2024-12-21 23:32:04