c语言宏定义计算, #define f(x) x*x main() ( int i i=f

 我来答
张逸思伯姗
游戏玩家

2019-01-16 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:1.1万
采纳率:34%
帮助的人:916万
展开全部
这代码都是错的,
怎么可能会输出i是3.
宏函数和函数最根本的区别就是,
宏函数真的是你传的闹胡啥,
它就变成啥,
就按你传的数据来说:
f(x)
第一个f的x就是4
+
4,
那么在宏函数里x就会被替换,
注意是猜弯轮替换,
成4+4,
即:
f(4
+
4)
等同于
4+4
*
4+4
而f(2+2)是同理,
它等同于穗信2+2*2+2
宏它是一种纯文本的改变,
可以说预处理器它就是一个自动的文本编辑器,
把一些特定的单词,
换成另一些字符.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
羊舌火郜永
2019-10-16 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:643万
展开全部
应该改为:#define
f(x)
((x)*(x))
i
=
((6+6)*(6+6))/((2+2)*(2+2))
=
9
x要括手贺掘起来,
整个运算还要括起来,拍档这样除法才不会出错。少一个括号都不行!
如少毕核一个#define
f(x)
(x)*(x),则
i
=
(6+6)*(6+6)/(2+2)*(2+2)=144,
还是错!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式