读书人

请写出一个宏定义SWAP(t,x,y),用于交换

发布时间: 2012-10-28 09:54:44 作者: rapoo

请写出一个宏定义SWAP(t,x,y),用以交换t类型的两个参数。
问题很白痴,谢谢了
答案说是SWAP(t,x,y) (t temp;temp=x;x=y;y=temp;)
这是什么意思,t不是一个参数吗,怎么又变成类型了?
能详细的讲解吗,谢谢了。

[解决办法]
这个SWAP是一个通用型的

反正宏就是一种展开拉

展开后,不就是

比如SWAP(int,a,b)

int temp;
temp = a;
a = b;
b = temp;

[解决办法]
因为宏名无类型,其参数也无类型。这是与函数不同的一个地方。
[解决办法]
t可以用作不同类型。。。如int,double等

探讨
可题目上说的是t,不是int呀,,t是不是int的缩写,谢谢了

[解决办法]
探讨
C/C++ code

#incldue <stdio.h>
#define SWAP(t,x,y) (t temp;temp=x;x=y;y=temp;)

int main()
{
int a=1;
int b=2;
printf("a=%d,b=%d\n",a,b);
SWAP(int,a,b)
printf("a=%d,b=%d……

读书人网 >C语言

热点推荐