468x60
Logo2
 首页 > 编程 > 正文

b,ab+a/b#,#define,N,2,#define,M,N+2,#de,N,#define,2#define

编辑: www.cnaol.net 创能数码知识网    来源:用户发布   发布时间:2018-6-2   浏览次数:32



b,N,#define,2,#define,M,N+2,#define,CUBE(a、b),a*b+a/哎呀,晕晕!


【讨论交流】

在C语言中为什么执行过#defineN2#defineMN+1
宏只是字符串替代一样的,没有计算过程 所以 #define NUM (M+1)*M/2 展开后NUM是(2+1+1)*2+1/2 要得到你想要的结果 把后面的M括起来,所以宏里面要尽量加多点括号 #define NUM (M+1)*(M)/2 现在在C++还有一种处理就是用inline函数或者const常量

有如下程序#defineN2#defineMN+1#defineNU
#define是用一段文字代替另一段文字 编译的时候N是“2”,M是“N+1”,所以M最后为“2+1” NUM是“2*M+1”,把其中的M换成“2+1”可以得到 NUM为“2*2+1+1”为6,系统不会给M自动加括号 非要用宏来实现的话只能在每次使用N,M和NUM的时候手动加上括号。 一般

#defineN2#defineMN+1#defineKM+1*M/2
#define N 2 #define M N+1 #define K M+1*M/2 main() {int i; for(i=1;
2+1+1*2+1/2= 5 //*4 1/2属于取整 为0


上一篇:这样如何在MALTLAB2012B中做PID参数调节
ad250_1
ad250_2
本站内容由用户发布,本站无法保证其部分内容的真实性,请用户一定仔细判断!
[创能数码知识网 www.cnaol.net]   [联系QQ:8859-9718]  
津ICP备18307289号