请问如下两个输出结果为什么不一样,就差一个大括号呀,不是可以省吗?
#include<stdio.h>#include<stdlib.h>
#define pr(a) printf("a=%d\t",(int)a)
#define print(a) pr(a);putchar('\n')
#define print2(a,b) pr(a);print(b)
main()
{
int cel;
for(cel=0;cel<=100;cel+=50)
print2(cel,9.15*cel+32);
}和
#include<stdio.h>
#include<stdlib.h>
#define pr(a) printf("a=%d\t",(int)a)
#define print(a) pr(a);putchar('\n')
#define print2(a,b) pr(a);print(b)
main()
{
int cel;
for(cel=0;cel<=100;cel+=50)
{print2(cel,9.15*cel+32);}
}
----------------解决方案--------------------------------------------------------
int i,s=0,t=0;
for(i=0;i<100;++i)
s=i;t=i;
和
int i,s=0,t=0;
for(i=0;i<100;++i)
{s=i;t=i;}
的结果有区别吗请问?为什么?
[color=white]
----------------解决方案--------------------------------------------------------
但是我上面的程序执行完就有区别呀,我也不知道怎么回事呀
----------------解决方案--------------------------------------------------------
请先回答我的问题
----------------解决方案--------------------------------------------------------
你的那个是不一样,不过我想问一下print2(cel,9.15*cel+32);在编译后变成两条语句了,但是为什么不是括在一起的?好像明白点了
----------------解决方案--------------------------------------------------------
你那个问题和我给你的问题本质一样,谢谢
我的解释完了
----------------解决方案--------------------------------------------------------
谢谢你了,朋友,我明白了,
----------------解决方案--------------------------------------------------------
受教,
----------------解决方案--------------------------------------------------------
#define 宏定义在宏出现的地方只是简单的替换而已,不会做任何其他操作的。
----------------解决方案--------------------------------------------------------
赞飞燕一个,第一次发现她心平气和,看来今天心情不错~~~哈哈~~
----------------解决方案--------------------------------------------------------