C语言 用宏函数实现 swap() 交换函数
函数功能:
- 交换任意两个同类型的数
函数一:
#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() 交换函数相关推荐
- Java实现swap交换函数的数组方法
Java实现swap交换函数的数组方法 public class fun_1 {//定义数组类型的函数static int[] swap(int a,int b){int t =a;a =b;b =t ...
- 一个简单的swap交换函数
基础比我想得重要,一不注意就出错了,而且真的不好找--今天就犯了一大打错,写交换函数的时候写错了,沉重的打击了我幼小的心灵--哎,是这样的. //这是一种错误的写法,形参传进来的是实参的地址,temp ...
- c语言 swap交换函数_C语言经典100题(14)
1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(13)中第三部分编程题的答案: #includeint main(){ int i,x,y,z; for(i=100;i<1000; ...
- c语言 swap交换函数_重审C中老生常谈的swap函数交换数值
概览 本文内容是关于C语言参数传值,以及x86底层实现的计算机科学. 包含了原理速览以及代码示例. 引言 如果你学习过C,可能会对经典的swap函数问题记忆深刻.简单的参数传值并不能在函数外部完成两个 ...
- 指针 Swap交换函数
@努力的张张 的C#练习 数组 指针地址传递 Swap函数 首先,我们先来看一下普通值传递和地址传递的区别 函数间普通值传递 上代码: #include<stdio.h> #include ...
- 【C语言】交换函数(swap)
这次我们要透过一个简单的函数swap深入理解函数传参的本质以及在C中如何选择传参方式. 首先,先来看第一段程序: void swap(int x, int y) {int temp = y;y = x ...
- C++学习笔记(二)——交换函数(swap)
这次我们要透过一个简单的函数swap深入理解函数传参的本质以及在C++中如何选择传参方式. 先来看第一段程序: void swap(int x, int y) {int temp = y;y = x; ...
- C语言交换函数:传值函数与传址函数的区别
1.传址函数典例 想必初识C语言函数的同学会遇到这样的问题: 当你想要写一个交换函数:交换输入的两个数字的值.明明将要传的两个数字传上去了,函数里的交换写法也没有问题,可为什么运行时会错呢?这就牵扯到 ...
- 交换函数swap的三种实现方法
本文采用三种方式实现两个数之间的交换,分别是①借助辅助变量temp的swap函数,②采用加减法的swap函数 ,③使用异或运算的swap函数. 现在直奔主题: 1.借助辅助变量temp的swap函数 ...
最新文章
- python登录面向对象_python基础之面向对象
- iOS WKWebView ios9以上版本配置 与 设置UserAgent(用户代理), 解决点击web, 客户端接收不到web事件问题...
- ML之FE:基于FE特征工程对RentListingInquries数据集进行预处理并导出为三种格式文件(csv格式/txt格式/libsvm稀疏txt格式)
- python为什么closed_为什么Python无法解析此JSON数据? [关闭] - Why can't Python parse this JSON data? [closed]...
- 【ExtJS实践】之五 :常用语句及脚本备忘
- Java并发编程-AQS源码之条件队列
- c++ assert用法
- php智慧社区,智慧园区综合管理平台智慧社区解决方案
- 2字段添加注释_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
- GMbox批量正版音乐下载
- 标准输入输出 stdio 流缓冲 buffering in standard streams
- dedecms如何做中英文网站?
- 树莓派3 串口 / 模拟串口
- 几个常用快速无损压缩算法性能比较
- python判断火车票座位号分布图_如何选择火车靠窗座位和选座位技巧!
- 安卓产品方案开发广告机案例
- javaWeb的线下服装店管理平台、基于ssm(springboot版本也有)+mysql线下服装销售系统
- 2020寒假【gmoj2417】【Loan Repayment】【二分】
- 2017湖湘杯Writeup
- 阿里P8财富自由,薪资200W+?看完我慕了呀。