输出如何是28的

输出怎么是28的?#define f(x) x*xmain(){int iif(4+4)/f(2+2)printf(%d,i)}输出怎么是28的?[解决办

输出怎么是28的?
#define f(x) x*x
main()
{int i;
 i=f(4+4)/f(2+2);
 printf("%d",i);
}
 
输出怎么是28的?

[解决办法]
i=f(4+4)/f(2+2);
等价于
i=4+4*4+4/2+2*2+2
所以宏定义要加很多的括号: #define f(x) ((x)*(x))