急!c语言遇到一有关带参宏定义问题
#include<stdio.h>#definef(x)x*xvoidmain(){inti;i=f(3+3)/f(2+2);printf("%d\n",i);}为什么输...
#include <stdio.h>
#define f(x) x*x
void main()
{
int i;
i=f(3+3)/f(2+2);
printf("%d\n",i);
}
为什么输出结果是19?
求过程,在线等,谢谢 展开
#define f(x) x*x
void main()
{
int i;
i=f(3+3)/f(2+2);
printf("%d\n",i);
}
为什么输出结果是19?
求过程,在线等,谢谢 展开
展开全部
#define f(x) ((x)*(x)) //多带几个括号就没事了
少了括号,它一展开就不是你想要的啦
f(3+3)/f(2+2) 没括号时展开是 3+3*3+3/2+2*2+2 结果就是19了
明白么?
少了括号,它一展开就不是你想要的啦
f(3+3)/f(2+2) 没括号时展开是 3+3*3+3/2+2*2+2 结果就是19了
明白么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i=f(3+3)/f(2+2);
这一句带入宏后定义后变成:
i=3+3*3+3/2+2*2+2;
这样是不是很清楚呢?
这一句带入宏后定义后变成:
i=3+3*3+3/2+2*2+2;
这样是不是很清楚呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
宏定义与展开的问题。 一楼正解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询