永发信息网

宏定义能不能在函数中?书上说宏定义必须写在函数之外,但在函数中运行也没问题啊

答案: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, 所以跳出, 不输出 同楼上几位仁兄, 宏里面 ++ --这样的复杂操作还是不要用的好, 运气不好会出现你一整天都找不出原因的莫名其妙的运行错误.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯