函数功能:
- 交换任意两个同类型的数
函数一:
#include <stdio.h>
/*
* 运行环境:MinGW 和 MSVC 都可用
* */
/*
* 这里添加 do-while 循环是为了兼容到不加花括号的if语句中,例子如下:
* if(condition) SWAP(x, y, double); else{ other statements;}
* */
#define SWAP(a, b, type) do {type temp = a; a = b; b = temp;} while(0)
int main(){
double x = 1.0;
double y = 2.0;
// 交换宏函数调用方式如下:
// SWAP(参数1, 与参数一同类型的参数2, 参数1的类型)
SWAP(x, y, double);
printf("x: %f, y: %f", x, y);
return 0;
}
函数二
//
// Created by huber on 2021/9/22.
//
#include <stdio.h>
/*
* 运行环境:只有在 MinGW 中可用,在 MSVC 中不可用
*
* */
/*
* typeof() 函数只在 MinGW 中可用,MSVC 不支持此函数
* 加 do-while 循环的原因同函数一 ↑↑↑
* */
#define SWAP(a, b) do { typeof(a) temp = a; a = b; b = temp;} while(0)
int main(){
int x = 1;
int y = 2;
SWAP(x, y);
printf("x: %d, y: %d", x, y);
return 0;
}
本文介绍如何使用C语言的宏定义来实现交换两个同类型变量值的swap()函数,详细阐述了两种不同的实现方法。
1万+

被折叠的 条评论
为什么被折叠?



