如何用宏定义的方式实现MAX(A,B),MAX(A,B,C),MAX(A,B,C,D)
#define MAX(A,B) ((A)>(B)?(A):(B))
#define MAX(A,B,C) ((A)>(B)?(A):(B))>C?((A)>(B)?(A):(B)):C
#define MAX(A,B,C,D) ((A)>(B)?(A):(B))>((C)>(D)?(C):(D))?((A)>(B)?(A):(B)):((C)>(D)?(C):(D))
测试代码如下:
#include <iostream>
using namespace std;
#define MAX2(A,B) ((A)>(B)?(A):(B))
#define MAX3(A,B,C) ((A)>(B)?(A):(B))>C?((A)>(B)?(A):(B)):C
#define MAX4(A,B,C,D) ((A)>(B)?(A):(B))>((C)>(D)?(C):(D))?((A)>(B)?(A):(B)):((C)>(D)?(C):(D))
void main()
{
int max2 = MAX2(1,2);
int max3 = MAX3(1,2,3);
int max4 = MAX4(1,2,3,4);
cout << max2 << endl;
cout << max3 << endl;
cout << max4 << endl;
}
如何用宏定义的方式实现MAX(A,B),MAX(A,B,C),MAX(A,B,C,D)相关推荐
- 角度转弧度(宏定义的方式)
角度转弧度(宏) #define angle2Rad(angle) ((angle) / 180.0 *M_PI) angle是一个参数,在进行参数计算的时候,需要给参数加上一个括号
- 如何为Swift进行宏定义
这阵子一直在自学Swift, 因为之前iOS的开发一直用Objective-C, 所以习惯了C语言那种宏定义方式, Swift作为一款更加安全的语言, 放弃了C语言中的宏定义, 有效的防止预编译时代码 ...
- C语言函数调用及宏定义代码实例
函数 #include<stdio.h>int square(int x); int square(int x){return x * x; }/*** 求x的平方*/ int main( ...
- 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节
C语言中宏定义使用的小细节 #pragma#pragma 预处理指令详解 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#p ...
- max 宏定义取消:error C2589: error C2059: 语法错误 : “::”
原文链接:http://blog.csdn.net/danelumax2/article/details/9172465有修改! 一:关于Pcl和WIndef的冲突: 1. 错误输出 ./zlibra ...
- .net 宏定义_C语言基础知识:几种特殊的函数宏封装方式
函数宏介绍 函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销. 函数宏本质上为宏,可以直接进行定义,例如: #define INT ...
- 如何用#define宏定义多行函数
在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义.那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍. 首先,函数调用会带 ...
- C语言宏定义使用技巧
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等.下面列举一些成熟软件中常用得宏定义...... 1,防止一个头文件被重复包含 #ifndef COMDEF_H ...
- 关于函数式宏定义的学习
题记:回头看看原本学过的知识,发现那些原本以为理解了的皮毛都突然让自己变得陌生.逐步学习,不懈努力. 测试题目时发现得出的结论与自己给出的不同,于是查阅资料,重新学习宏定义相关的文章.在C与C++编程 ...
最新文章
- 关于Android开源库分享平台,(GitClub)微信小程序的开发体验
- 漫画:产品经理的这些“谎言”,你一定中招过!!!
- vue--卡片层叠 组件 开发小记
- php接收多层数组中文乱码解决
- JAVASCRIPT发展历程
- 【Weiss】【第03章】练习3.20:中缀表达式转后缀表达式
- 数据结构:哈希表函数构造和冲突解决方法
- 【SHOI2017】相逢是问候【扩展欧拉定理】【复杂度分析】【线段树】
- HUST软工1506班第2周作业成绩公布
- 2019阿里云开年Hi购季大促主会场全攻略!
- 【操作系统】 第二章 进程的描述与控制
- VS2005不能新建Win32 智能设备项目的解决办法(转)
- 计算机网络误区——VLAN中Access和Trunk原理详解
- Ember.js中文介绍
- nrf52832-定时器例程
- CodeCombat 落地马来西亚巴生中华小学,支持人工智能远程教学
- 杀毒软件可以查杀已知的计算机病毒,杀毒软件可以查杀( )。
- CRMEB打通版简单一步实现类似京东的PLUS会员功能
- 第6周作业1-闰年之循环判断(网络131黄宇倩)
- Win8快捷键收集大汇总
热门文章
- 蝴蝶效应,青蛙现象,鳄鱼法则,鲇鱼效应,羊群效应,刺猬法则,手表定律,破窗理论,二八定律,木桶理论,马太效应,这些你都明白吗?...
- 关于C++读取Excel表格资料后的心得
- Excel 查重小技巧,适用于office2003
- 三角形的几何公式大全_2020高中数学必备公式大全
- 利用python进行数据处理
- Java游戏培训机构哪家专业
- pcb排版技巧_借鉴大师的排版技巧
- firefox android 去更新,Firefox Android移动版更新
- 揭秘华南地区首个高校电竞专业:不教打游戏 培养全能人才
- Vue3+Ant-design项目启用ts/typescript