函数功能:

  • 交换任意两个同类型的数

函数一:

#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. Java实现swap交换函数的数组方法

    Java实现swap交换函数的数组方法 public class fun_1 {//定义数组类型的函数static int[] swap(int a,int b){int t =a;a =b;b =t ...

  2. 一个简单的swap交换函数

    基础比我想得重要,一不注意就出错了,而且真的不好找--今天就犯了一大打错,写交换函数的时候写错了,沉重的打击了我幼小的心灵--哎,是这样的. //这是一种错误的写法,形参传进来的是实参的地址,temp ...

  3. c语言 swap交换函数_C语言经典100题(14)

    1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(13)中第三部分编程题的答案: #includeint main(){ int i,x,y,z; for(i=100;i<1000; ...

  4. c语言 swap交换函数_重审C中老生常谈的swap函数交换数值

    概览 本文内容是关于C语言参数传值,以及x86底层实现的计算机科学. 包含了原理速览以及代码示例. 引言 如果你学习过C,可能会对经典的swap函数问题记忆深刻.简单的参数传值并不能在函数外部完成两个 ...

  5. 指针 Swap交换函数

    @努力的张张 的C#练习 数组 指针地址传递 Swap函数 首先,我们先来看一下普通值传递和地址传递的区别 函数间普通值传递 上代码: #include<stdio.h> #include ...

  6. 【C语言】交换函数(swap)

    这次我们要透过一个简单的函数swap深入理解函数传参的本质以及在C中如何选择传参方式. 首先,先来看第一段程序: void swap(int x, int y) {int temp = y;y = x ...

  7. C++学习笔记(二)——交换函数(swap)

    这次我们要透过一个简单的函数swap深入理解函数传参的本质以及在C++中如何选择传参方式. 先来看第一段程序: void swap(int x, int y) {int temp = y;y = x; ...

  8. C语言交换函数:传值函数与传址函数的区别

    1.传址函数典例 想必初识C语言函数的同学会遇到这样的问题: 当你想要写一个交换函数:交换输入的两个数字的值.明明将要传的两个数字传上去了,函数里的交换写法也没有问题,可为什么运行时会错呢?这就牵扯到 ...

  9. 交换函数swap的三种实现方法

    本文采用三种方式实现两个数之间的交换,分别是①借助辅助变量temp的swap函数,②采用加减法的swap函数 ,③使用异或运算的swap函数. 现在直奔主题: 1.借助辅助变量temp的swap函数 ...

最新文章

  1. python登录面向对象_python基础之面向对象
  2. iOS WKWebView ios9以上版本配置 与 设置UserAgent(用户代理), 解决点击web, 客户端接收不到web事件问题...
  3. ML之FE:基于FE特征工程对RentListingInquries数据集进行预处理并导出为三种格式文件(csv格式/txt格式/libsvm稀疏txt格式)
  4. python为什么closed_为什么Python无法解析此JSON数据? [关闭] - Why can't Python parse this JSON data? [closed]...
  5. 【ExtJS实践】之五 :常用语句及脚本备忘
  6. Java并发编程-AQS源码之条件队列
  7. c++ assert用法
  8. php智慧社区,智慧园区综合管理平台智慧社区解决方案
  9. 2字段添加注释_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  10. GMbox批量正版音乐下载
  11. 标准输入输出 stdio 流缓冲 buffering in standard streams
  12. dedecms如何做中英文网站?
  13. 树莓派3 串口 / 模拟串口
  14. 几个常用快速无损压缩算法性能比较
  15. python判断火车票座位号分布图_如何选择火车靠窗座位和选座位技巧!
  16. 安卓产品方案开发广告机案例
  17. javaWeb的线下服装店管理平台、基于ssm(springboot版本也有)+mysql线下服装销售系统
  18. 2020寒假【gmoj2417】【Loan Repayment】【二分】
  19. 2017湖湘杯Writeup
  20. 阿里P8财富自由,薪资200W+?看完我慕了呀。

热门文章

  1. uniapp项目多端正常 唯独ios白屏
  2. Macbook(M2 Air) 使用笔记/经验分享
  3. C _Who killed Cock Robin (树形dp)
  4. symfony入门学习资料之十:YAML——基本语法
  5. PowerDesigner 把Comment复制到name中和把name复制到Comment
  6. C语言 将字符串赋值给字符指针
  7. 搭建postfix邮件服务,并用talnet发送邮件
  8. windows系统内存结构概述(重要概念释疑)
  9. php重定向函数是什么,php重定向三方法
  10. 漫画:三分钟了解什么是囚徒困境