2 xyhqqlove xyhqqlove 于 2016.01.25 09:56 提问

C语言的红,为什么出错了

#include

#define add(x,y) x+y;
void main()
{
int x = 1;
int y = 2;
int z = add(x+y);
printf("%d", z);
}

7个回答

91program
91program   Ds   Rxr 2016.01.25 10:12

第一: #define add(x,y) (x+y); 最好写成: #define add((x),(y)) ((x)+(y));
第二:对宏 add 的调用,需要按宏定义的格式,如:add(x,y);

caozhy
caozhy   Ds   Rxr 2016.01.25 09:58

int z = add(x+y);
->
int z = add(x,y);

oyljerry
oyljerry   Ds   Rxr 2016.01.25 10:01
 #define add(x,y) (x+y);
beidoubushixing
beidoubushixing   2016.01.25 10:37

图片说明

调用宏的那句不对,应该是 int z = add(x,y);

U201017971
U201017971   2016.01.25 10:56

宏调用的时候写成add(x,y)。另外你的宏定义中末尾的;号是不是应该去掉呢?

U201017971
U201017971   2016.01.25 10:57

宏调用的时候写成add(x,y)。另外你的宏定义中末尾的;号是不是应该去掉呢?

John_ToStr
John_ToStr   Rxr 2016.01.25 17:47

你的定义跟调用都有问题。好好看看你的代码。以上几楼说的都不错

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!