作者terranhardy (2-D)
看板C_and_CPP
标题[问题] #define 使用的问题
时间Fri Mar 27 01:17:23 2009
#include<stdio.h>
#define f(x)(x*x+2*x+9)
void main(){
int i=2;
printf("%d, %d \n", f(i), f(i+1));
}
请问为什麽f(i+1)跑出来是19呢? 代了很多变数都觉得很奇怪,
找了相关文章只知道避免这种情况发生是要在x变数再加上括号,
但还是不清楚19是怎麽被运算出来的? 麻烦大家帮忙解释一下,谢谢了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.224.13.136
1F:推 nedbob:i+1*i+1+2*i+1+9 2+1*2+1+2*2+1+9=19 03/27 01:19
2F:→ terranhardy:真是清楚,谢谢你了 03/27 02:07
3F:推 sdyy:x=>(x) 就对了 03/27 13:01