首页 > 编程语言 > 详细

c语言:宏里面参数不加括号容易出错,在使用时尽量加括号及举例

时间:2015-12-25 06:28:13      阅读:352      评论:0      收藏:0      [点我收藏+]

宏里面参数不加括号容易出错,在使用时尽量加括号

程序1:

#include<stdio.h>

#define SQARE(X) X*X

int main()

{

int  n = 10;

int m=SQARE(n);

printf("m=%d\n",m);

return 0;

}

结果:

m=100

请按任意键继续. . .

分析:貌似没有出问题,请看下面两个例子

程序2:

#include<stdio.h>

#define SQARE(X) X*X

int main()

{

int m = SQARE(1 + 3);//1+3*1+3=7

printf("m=%d\n", m);

return 0;

}

结果:

m=7

请按任意键继续. . .

改正程序2:

#include<stdio.h>

#define SQARE(X) (X)*(X)

int main()

{

int m = SQARE(1+3);//1+3*1+3=16

printf("m=%d\n",m);

return 0;

}

结果:

m=16

请按任意键继续. . .

程序3:

#include<stdio.h>

#define ADD(X) X+X  //不加括号容易出错

int main()

{

int m = 10*ADD(2);//10*2+2

printf("m=%d\n",m);

return 0;

}

结果:

m=22

请按任意键继续. . .

改正程序3:

#include<stdio.h>

#define ADD(X) (X+X)

int main()

{

int m = 10*ADD(2);//10*2+2

printf("m=%d\n",m);

return 0;

}

结果:

m=40

请按任意键继续. . .


本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1728067

c语言:宏里面参数不加括号容易出错,在使用时尽量加括号及举例

原文:http://yaoyaolx.blog.51cto.com/10732111/1728067

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!