永发信息网

有#define MUL(x,y) x*y, 则printf("s=%d",MUL(2,2+3)):的结果.求大神尽量解答详细些,谢谢.

答案:1  悬赏:20  手机版
解决时间 2021-03-20 19:35
有#define MUL(x,y) x*y, 则printf("s=%d",MUL(2,2+3)):的结果.求大神尽量解答详细些,谢谢.
最佳答案
define仅仅是字符替换,因此在将MUL(2,2+3)时,x是2,y是2+3,直接将表达式x*y替换字符后,则变成了2*2+3,其计算结果在乘法优先于加法的作用下会得到7这个数值。这里运用了PRINTF语句,所以输出的值是S=7
为了避免这种情况,有两种办法解决
定义更安全的宏定义,即使用括号将表达式括起来,避免了优先级在替换后变化。
define MUL(x,y) (x)*(y)
将宏定义改变为函数
int MUL(int x,int y){
return(x*y);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
辽宁大学、东北大学、东北财经大学的 财务管
东芝固态硬盘q300和三星的840谁更好
英文的 囡囡我爱你 怎么打? - - 或者还有没
HANMSON 燕莎店怎么样
企业订阅号与个人订阅号在功能上有什么区别?
新买的天然气跟燃气灶为啥关火后为啥燃气灶还
如果说对方打电话给你,但是你没有接,要不要电
一亩地袜业NO.231地址在哪,我要去那里办事
今天看了《The Beauty Inside奇幻心旅》,有
永新街这个地址在什么地方,我要处理点事
自学考试文凭和插本文凭有什么不同
ZTE ZXHN F460电信光纤猫超级密码WIN7系统破
煲老火汤的话隔多少天煲一次才好呢
庄户菜馆在哪里啊,我有事要去这个地方
《记梁任公先生的一次演讲》中作者为什么要引
推荐资讯
右侧眼眶内侧骨折并右侧筛窦积血,上颌窦积血
只以笑脸对人,对事,可有谁懂这微笑背后的伤
风葫芦是什么成语
绿色金融债券是什么意思?
教我学唱美美哒这首歌
下载什么软件可以连接摄像头
皮衣能叠吗
YOUTOPE什么意思
做老潼关肉夹馍的烤箱去哪里买
网贷整顿,现在还了都贷不出来,没有能力还了
我想养殖野猪,求养殖成本:10头种猪(2公8母
流明越高越好吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?