宏定义能不能在函数中?书上说宏定义必须写在函数之外,但在函数中运行也没问题啊
答案:2 悬赏:10 手机版
解决时间 2021-12-21 22:43
- 提问者网友:趣果有间
- 2021-12-21 11:28
宏定义能不能在函数中?书上说宏定义必须写在函数之外,但在函数中运行也没问题啊
最佳答案
- 五星知识达人网友:山河有幸埋战骨
- 2021-12-21 12:37
看编译器怎么解释了
全部回答
- 1楼网友:摆渡翁
- 2021-12-21 14:16
这道题输出3个数字, 分别是1的三次方; 4的三次方; 和7的三次方
printf("%d\n",b(i++));
上面这一句, 宏展开后, 等价于
printf(%d, ((x++)*(x++)*(x++)));
考虑到 后++ 的特性. 等价于
printf(%d, x*x*x)
x += 3; // ++三次
第一次循环, 输出1的三次方
第二次循环, 输出1+3的三次方
第三次循环, 输出1+3+3的三次方
第四次循环, 因为1+3+3+3大于8, 所以跳出, 不输出
同楼上几位仁兄, 宏里面 ++ --这样的复杂操作还是不要用的好, 运气不好会出现你一整天都找不出原因的莫名其妙的运行错误.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯