宏定义,交换两个值

时间:2021-10-20 02:49:39

问题及代码:

定义一个带参的宏(或者模板函数),带有三个参数,第一个参数为类型,后两个参数的值互换,

并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

代码:

#include <stdio.h>
#define SWAP(T,m,n) {T s; s=m, m=n, n=s;}

int main()
{
    short int i1,i2;
    double d1,d2;
    long l1,l2;
    scanf("%hd%hd",&i1,&i2);
    SWAP(short int,i1,i2);
    printf("%hd %hd\n",i1,i2);
    scanf("%lf%lf",&d1,&d2);
    SWAP(double,d1,d2);
    printf("%g %g\n",d1,d2);
    scanf("%ld%ld",&l1,&l2);
    SWAP(long,l1,l2);
    printf("%ld %ld\n",l1,l2);
    return 0;
}

运行结果:

宏定义,交换两个值