参考:https://blog.csdn.net/a_ran/article/details/74911031

1. 简单的宏实现

#define max(a,b) (((a) > (b)) ? (a) : (b))#define min(a,b) (((a) < (b)) ? (a) : (b))

2. 内核的宏实现

/* safe min & max *//* avoid ++/-- expand twice *//* compile warning if type diff */#define min(x, y) ({ \typeof(x) _min1 = (x); \typeof(y) _min2 = (y); \(void) (&_min1 == &_min2); \_min1 < _min2 ? _min1 : _min2; })#define max(x, y) ({ \typeof(x) _max1 = (x); \typeof(y) _max2 = (y); \(void) (&_max1 == &_max2); \_max1 > _max2 ? _max1 : _max2; })

Linux 内核的实现是安全的,避免了 ++/-- 计算多次,而且会在编译时警告参数为不同的类型

3. 使用内联函数实现

// 内联函数要先声明inline int max(int a, int b);inline int min(int a, int b);int max(int a, int b){return (a > b ? a : b);}int min(int a, int b){return (a < b ? a : b);}

其实不使用 inline 关键字也可以,因为大多数编译器会自动把短小的函数转成内联类型(手动声明更好)

4. c++ 使用 algorithm 提供的 max/min

#include <algorithm>std::max(2, 3);std::min(2, 3);

c/c++ max/min 4种实现方法相关推荐

  1. 从集合中查找最值得方法——max(),min(),nlargest(),nsmallest()

    从集合中查找最值得方法有很多,常用的方法有max(),min(),nlargest(),nsmallest()等. 一.max()和min() 1.1 入门用法 直接使用max(),min(),返回可 ...

  2. 在flask-sqlalchemy中使用max min avg方法

    2019独角兽企业重金招聘Python工程师标准>>> 一般用max min avg方法都是查询一条数据 首先从sqlalchemy中引入func方法 from sqlalchemy ...

  3. 公共方法之运算符,len,del,max,min,range,enumerate

    1.+ 合并 支持字符串,列表,元组 字符串 str1='abc' str2='zxc' print(str1+str2) #abczxc str3=str1+str2 print(str3) #ab ...

  4. 快速排序的两种实现方法(c语言版本)

    经过调研发现,对任意无序整数数组,快速排序有两种实现方法,这里简单阐述下思路: 思路一:随意选择一个基准元,一般选择数组的起始元或末尾元,Weiss这本书上特意搞了个算法来选择基准元,--,总之就是基 ...

  5. python 归一化_几种归一化方法(Normalization Method)python实现

    数据归一化问题是数据挖掘中特征向量表达时的重要问题,当不同的特征成列在一起的时候,由于特征本身表达方式的原因而导致在绝对数值上的小数据被大数据"吃掉"的情况,这个时候我们需要做的就 ...

  6. python 生成001开始的序号_你知道嘛:Python内建序列通用操作有6种实现方法(赶快收藏)...

    本文内容主要介绍了Python内建序列通用操作6种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下!!! 数据结构式通过某种方式(例如对元素进 ...

  7. Python 内建函数 max/min的高级用法

    max/min 函数 Python 中的 max/min函数是用来获取传入参数的最大值或最小值的,其运行机制都一样,所以这里主要描述 max 的运行机制以及使用方法. 最简单的用法,就是直接传入两个要 ...

  8. SQL极致优化案例:利用索引特性进行max/min优化

    不要错过更多干货文章,点击上方蓝字关注我们 IS NOT NULL的优化 1. 问题提出 客户系统有这样一条SQL,脱敏后如下: SELECT NVL(MAX(T1.CREATED),SYSDATE) ...

  9. 前端常用60余种工具方法(下)

    前端常用60余种工具方法(上) 41.将数字转换为大写金额 export const changeToChinese = (Num) => {//判断如果传递进来的不是字符的话转换为字符if ( ...

最新文章

  1. oracle完全卸載,Oracle10g的完全卸載
  2. (7)数据段权限检查
  3. HyperLink 鼠标经过时候显示全部文字
  4. 注意1:图像插值理论的理解
  5. 使用关键字SCAN ABAP-SOURCE对ABAP源代码进行语法扫描
  6. 分布式理论CAP定理
  7. linux内核的冒险md来源释义# 14raid5非条块读
  8. python爬虫ssl错误_Python爬虫:Requests的SSLError:certificate verify failed问题解决方案6条...
  9. (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析
  10. 电脑怎么设计java环境_java环境变量配置,详细教您win7怎么配置java环境变量。
  11. 数据结构与算法 汉诺塔问题和列车车厢重排问题
  12. 建图时,计算激光点在map坐标系下的坐标
  13. leetcode blind 75
  14. wps怎么链接html,wps怎么添加超链接 wps制作超链接的步骤教程
  15. linux系统双显卡切换显卡驱动,Ubuntu 14.04 安装 Nvidia 私有驱动并进行双显卡切换...
  16. 【转载】通过搜狗站长平台手动向搜狗搜索提交文章加快收录
  17. 高德地图发布Q2交通报告
  18. AutoCAD Civil 3D-用Civil 3D建立路面
  19. 基于FlashWavRecorder实现IE11浏览器录音后用科大讯飞转文字
  20. .NET 反编译工具

热门文章

  1. Android程序为什么没有退出设计?
  2. C语言--const修饰指针解析
  3. UNIX中的文件和目录
  4. OpenStack高可用核心架构分析
  5. findwindowex子窗口类型有哪几种_SQL-窗口函数
  6. linux 几种IPC例子总结
  7. php7.3 安装详解,php7.3.20以及常用拓展安装
  8. 万能素材库_高中作文经典人物万能素材积累
  9. dedecms php5.4 无法退出后台,解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法...
  10. html5混合编写,Html5混合开发环境的搭建