c语言:宏里面参数不加括号容易出错,在使用时尽量加括号及举例
宏里面參數不加括號容易出錯,在使用時盡量加括號
程序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
請按任意鍵繼續.?.?.
轉載于:https://blog.51cto.com/yaoyaolx/1728067
總結
以上是生活随笔為你收集整理的c语言:宏里面参数不加括号容易出错,在使用时尽量加括号及举例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: secureCRT 右键的设置选中就co
- 下一篇: ★Kali信息收集~3.子域名系列