C语言 用宏函数实现 swap() 交换函数

SAR成像系列:【3】合成孔径雷达(SAR)的二维回波信号与简单距离多普勒(RD)算法 (附matlab代码) 二维回波信号分析 阅读详情

函数功能:

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

函数一:

#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;
}
掌控板玩板指南1:初识掌控板、扩展板、Mind+编辑器 掌控板、I/O扩展板入门 阅读详情

相关推荐

Windows 11“此应用已被管理员阻止运行”解决方案

通过本文介绍的两种方法,你应该能够解决Windows 11中“此应用已被管理员阻止运行”的问题。无论你选择创建新管理员账户还是禁用管理员批准模式,都请确保了解相关操作的风险,并根据你的实际需求做出选择。通过禁用“用户账户控制:以管理员批准模式运行所有管理员”设置,可以解决因系统安全设置导致的应用程序被阻止运行的问题。这种方法适用于那些希望简化管理员账户操作流程的用户,但需要注意可能带来的安全风险。通过创建并登录具有管理员权限的新账户,可以解决因系统安全设置导致的应用程序被阻止运行的问题。

mmoo_python的博客 1万+

【C语言】[其他]:宏定义swap(x,y)

1) #define swap(x,y) (x^=y,y^=x,x^=y)2) #define swap(x,y) ((x)=(x)+(y),(y)=(x)-(y),(x)=(x)-(y))转载:http://blog.youkuaiyun.com/wpc320/article/details/3030824

z21109的专栏 1778

MiniMax H3 + ComfyUI 工作流搭建指南:从整合包到视频生成

AI视频生成正成为内容创作的新基础设施,而ComfyUI作为可视化工作流引擎,将复杂的模型推理过程拆解为节点与连线,让本地视频生成变得可复用、可批量。理解这一原理后,用户无需编写代码,只需掌握模型加载、提示词控制、采样与解码的基本链路,即可搭建出稳定的视频生产管线。MiniMax H3作为前沿视频生成模型,在ComfyUI中通过权重文件和自定义节点落地,配合整合包可大幅降低环境配置门槛。从硬件评估、目录结构到节点连接与参数调优,本文系统性梳理了从零跑通一条视频生成工作流的完整路径,帮助用户在批量素材生成、风

weixin_29057065的博客 410

C++ swap宏

http://bbs.youkuaiyun.com/topics/330252958 目前了解到的有SWAP(val1, val2)三种,各有优缺点 #define SWAP(x, y) \             do     \             {      \                 (x) = (x) ^ (y) \                 (y) = (x)

Nathan_wz的专栏 840

Windows Server 2012评估版过期自动关机问题:两种高效解决方案详解

本文针对Windows Server 2012评估版过期导致的自动关机问题,提供了两种高效解决方案。一是通过slmgr.vbs命令重置授权,临时延长评估期;二是使用DISM工具将评估版转换为正式版,一劳永逸。文章详细解析了两种方法的操作步骤、注意事项及适用场景,帮助用户快速恢复服务器稳定运行。

pytorchlight8的博客 1194

Python之美——Python2与Python3多版本共存

Python多版本共存的方法Python2、Python3共存的方法python2下载及环境变量配置第一步、打开Python官网,下载Python2第二步、python2环境变量配置测试结果 Python2、Python3共存的方法 方法如下: 1.先确保不同版本解释器的python.exe所在的路径在环境变量中 2.拷贝各自的python.exe并重命名即可 步骤(理解不了下面有图示): 1、首先你需要将不同的python版本安装,且都已经将跟版本的环境变量配置好了,python3和2的下载方式

chenchen5152的博客 3944

【C语言】用(#define)宏定义表达式写出加法、交换函数

#define宏 1. 用宏定义表达式完成加法运算函数 #define ADD(x,y) ((x)+(y)) 宏会替换到调用宏函数的地方,这是毋庸置疑的。 为什么x+y的整体要加上() ? 那么为什么参数x,y要加上() ? 我们来结合代码看一下吧。 #define ADD(x,y) x+y int main() { int x1 = 3; int x2 = 5; printf("%d\n...

进阶之路 1万+

在MCUXpresso上通过J-link烧写KW45

背景: KW45B是nxp 的ble npi产品,其使用的IDE为MCUXpressso或者IAR,MCUXpressso有一些bug,但是由于MCUXpressso阅读查找代码相对IAR容易,所以我经常使用的MCUXpressso进行开发。当然IAR也有其优势,比如编译、烧写速度相对MCUXpressso更快,是比较通用的一个平台,而MCUXpressso是NXP独有的。 Kw45有两种烧写方式,一是使用MCUlink,二是使用Jlink。NXP ble 产品线提供的IDE资料里有最新的15.0版本的

weixin_41889258的博客 2859

用宏定义实现函数值互换

#include #include #include #define swap(a,b){\ int c;\ c=a;\ a=b;\ b=c;\ } using namespace std; int main() { int i, j, a[10], b[10]; cout << "输入十个数子在a中" << endl; for (i = 0; i < 10; i++) cin

qq_18343569的博客 912

Dify插件离线部署全攻略:从下载到安装的完整流程

本文详细介绍了Dify插件离线部署的完整流程,针对企业内网等无网络环境需求。核心步骤包括在联网环境下载插件包、在特定Python 3.12.9环境下使用专用工具进行离线重打包,以及最终在离线Dify环境中安装验证。重点解决了离线安装的核心难题,并提供了环境配置、批量处理和故障排查等实用技巧,帮助用户实现Dify插件的顺利离线部署。

seed的博客 656

开源分享:苹果群控手机源代码解析与实战

本文介绍了苹果设备群控的基本原理和实现方法,重点解析了基于Python+Appium的群控系统构建。主要内容包括:1)设备连接管理技术(USB/Wi-Fi);2)自动化控制方式(WDA/AppleScript/Appium);3)实战演示了通过Python脚本实现多设备同时控制,涵盖环境配置、代码解析和功能说明;4)提出了多线程、图像识别等优化方向。文章为开发者提供了快速上手的群控方案,适用于自动化测试、批量管理等场景,并推荐了相关开源项目参考。

2403_88540309的博客 1343

用宏来实现两数交换

TP面试让实现一个交换两数的宏,给我整懵了,回来查了资料实现如下: 记录一下自己的成长,做一个笔记,能帮到有缘人是最好了!!! #include<iostream> #define SWAPVALUE(a,b) {(a)=(a)+(b);(b)=(a)-(b);(a) = (a)-(b);} int main() { int x = 1; int y = 2; int temp = 0; SWAPVALUE(x,y); std::cout<<

qq_44735907的博客 1784

QGis二次开发 —— 5.2、基于qgis搭建离线地图服务并开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

QGis二次开发 —— 5.2、基于qgis搭建离线地图服务并开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

221

宏函数的使用

#include<stdio.h> #define SWAP(a, b, t) { t=a; a=b; b=t; } #define SWAP(a, b, t) t=a; a=b; b=t; #define MYADD(x,y) ((x)+(y)) /* 宏函数,要保证运算的完整性 宏函数,在一定程度上比普通函数效率高,普通函数会有入栈和出栈时间上的开销 通常将...

马赛克的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数据结构与算法--交换(swap)算法

交换是数据结构最基础的算法,在编程的时候我们经常会遇到需要交换两个变量值的情况,一般我们都会想到建立一个中间变量temp来实现交换两个变量的值,下面以C语言为例介绍如何交换两个变量值。 1.使用函数来实现 对于初学者来说,最简单的做法是直接在主函数里直接定义temp变量,代码如下: #include<stdio.h> int main(void) { int a,b,temp; a = 10; b = 20; printf("a = %d,b = %d

IRQHandler的博客 2711

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

宏函数

define 在C语言中,有很多作用,除了一些基本的概念,定义常量以外,比较有意义的就是它所定义的宏函数 一.两个数相加 #define ADD(a,b) ((a)+(b)) int main() { int i = 6; int p = 17; int q = ADD(i, p); printf("ADD:%d\n", q); system("pause"); return

景初浅行 733

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

一文快速掌握C宏函数!

关于C语言宏函数的用法,你知道多少?

2302_80970336的博客 568

C语言中,实现函数宏的三种方式_宏能有返回值吗

【代码】C语言中,实现函数宏的三种方式_宏能有返回值吗。

2501_90229147的博客 757

C++ 学习 ::【基础篇:06】:C++ (inline)内联函数的介绍及其出现的意义【对比于 C语言宏函数】

本篇介绍C++ 内联函数的基本作用及内联函数与C语言宏函数的对比:1. inline 内联函数的概念及使用方式。2. 关于函数栈帧的简单说明 、内联函数出现的意义:减少栈帧的开销提升程序运行效率 3.3 C++ 的解决方案:内联函数。3.2 C 语言的解决方案:宏函数。4. 内联函数的注意点。

weixin_53202576的博客 1468

最基本的算法(1)—— 交换

最基本的算法(1)—— 交换 交换算法在c/c++中有以下几种实现方式: 值传递(传拷贝,不可实现) 指针传递(可用,较复杂,c常用) 宏函数(c中特有,注意语法) 引用传递(c++特有,简单好用) 模板函数(调用std库的swap函数) //1. 实现交换算法 #include<iostream> using namespace std; int main(){ int...

weixin_45926367的博客 415

冒泡排序(C语言实现)

冒泡排序:是一种稳定排序,在排序过程中可以监测到数据是否已经有序(对数据的有序性敏感),可以立即停止,如果待排序的数据基本有序,则冒泡的效率是非常高的。下面用C语言实现冒泡排序。 #include <stdio.h> #include <stdlib.h> #define swap(a, b) {typeof(a) t=a; a=b; b=t;} // 交换宏函数,typ...

weixin_43504629的博客 363

__typeof在宏函数中的使用

用于交换2个数字的宏函数代码示例 #define SWAP(a, b) { \ __typeof(a) __temp = a; \ a = b; \ b = __temp; \ }

poinsettia的专栏 606

C/C++_log2000_C语言中的宏定义与宏函数定义1

C语言中的宏定义与宏函数定义entry1 参考: http://blog.sina.com.cn/s/blog_861912cd0100tc94.html 关键词:宏定义; 宏函数定义; 引言: 要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以

S_gy_Zetrov的博客 966

C编程之美:宏函数实现两个数的交换

有意思! #define SWAP(x,y) x=x+y;y=x-y;x=x-y;

weixin_43014207的博客 650

【c语言】实现翻转字符串函数reverse_string

函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。 #include #include #define SWAP(a,b,c) ((c)=(a),(a)=(b),(b)=(c)) void reverse_string(char * s) { char *p=s; char t

Zk 8585
上一篇: CLion 常用快捷键
下一篇: Linux Ubuntu20.04 源码安装软件
Huber Wong
博客等级 码龄6年 117粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huber Wong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值