#define程序结果输出?(已解决)
#define pr(a) printf("%d\t",(int)(a))#define print(a) pr(a);printf("ok!)
main()
{
int i,a=1;
for(i=0;i<3;i++)
print(a+i);
}
输出:1 2 3 ok!
不明白,为什么只输出一个OK!?
[此贴子已经被作者于2007-11-1 20:27:16编辑过]
上述程序相当于:
void main()
{
int i,a=1;
for(i=0;i<3;i++)
printf("%d\t",(int)(a+i));
printf("ok!);
}
为什么只输出一个ok这回明白了吧!
注意:define的作用只是纯粹的字符串替换。
printf("ok!)少了一分号````应该是printf("ok!")``
pr(a)------------>printf("%d\t",(int)(a))
print(a)--------->printf("%d\t",(int)(a));printf("ok!)
所以
for(i=0;i<3;i++)
print(a+i);就是
for(i=0;i<3;i++)
printf("%d\t",(int)(a));printf("ok!);
看不动的时候```可以一步步慢慢替换``