宏的问题,详情请进!~!~
书上原题如下:定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出以交换后的两个值。#include<stdio.h>
#define S(a,b) t=a;a=b;b=t
int main(void)
{
int a,b,t;
scanf("%d,%d",*a,*b);
S(a,b);
printf("result is %d,%d",a,b);
return 0;
}
书上的答案是:
#define SWAP(a,b) t=b;b=a;a=t
main()
{int a,b,t;
printf("Input two integers a,b:");
scanf("%d,%d,"*a,*b);
SWAP(a,b);
printf("Now,a=%d,b=%d\n",a,b);
}
运行结果如下:
Input two integers a,b:3,4
Now,a=4,b=3
我在TURBO C++3.0下同不过,(以在TOP加入head information)
VC++6.0编译也同不过。
书上的答案也同不过啊,真不知道老潭是怎么出书,我买的是第二版的练习