从宏定义到inline函数
来源:互联网 发布:可怕 人心 知乎 编辑:程序博客网 时间:2024/06/05 18:21
(一) 宏和普通函数
在TI提供的一些例程中,经常能看到像下面这种使用宏的方式。
宏经常用于简单的计算,比如求两个数的最大值或者最小值。
#define MAX(a, b) ((a)>(b)?(a):(b))
《C和指针》一书指出这样做的好处有两个:“第一,用于调用和从函数返回的代码很可能比实际执行这个小型计算工作的代码更大(博文作者注:函数调用会带来额外的开销),所以使用宏比使用函数在程序的规模和速度方面都更胜一筹;第二,也是更为重要的一点,函数的参数必须声明为一种特定的类型,所以它只能在类型合适的表达式上使用,反之,上面这个宏可以用于整形、长整型、单浮点型、双浮点数以及其他任何可以用操作符比较大小的类型。”同时,该书还指出:“和使用函数相比,使用宏的不利之处在于每次使用宏时,一份宏定义代码的拷贝都将插入到程序中,除非宏非常短,否则使用宏可能会大幅度增加程序的长度。”
宏和函数的比较如下表所示(源自《C和指针》一书)。
(二) 从宏定义到inline函数
《C++ Primer》一书指出:上面使用宏的方式很有吸引力,但是也很危险,因为它的机制和函数调用不同,只是简单地提供参数的替换(博文作者注:并不对参数的类型进行检查)。
inline函数(内联函数)的引入正是为了解决上面使用宏的方式所带来的问题。
阅读全文
0 0
- 从宏定义到inline函数
- inline函数 宏定义
- 内联函数inline和宏定义
- inline函数和宏定义区别 整理
- C++:为什么inline函数的定义要放在头文件里 + inline和宏定义的区别(暂未体会到)
- inline & 宏定义
- 内联(inline)函数和宏定义(#define)的区别
- inline成员函数 以及与宏定义区别
- inline函数的声明与定义
- 关于inline---代替宏定义
- inline和宏定义区别
- inline与宏定义区别
- 从宏定义到static变量
- inline-block从入门到精通
- inline-block从入门到精通
- inline 内联函数详解 内联函数与宏定义的区别
- 使用const定义常量,inline定义小型函数
- inline内联函数(声明前加inline还是定义前加inline)
- 16进制数字转换为字符
- Android消息处理机制认识过程总结
- 数据库设计规范
- centos7
- u3d创建精灵
- 从宏定义到inline函数
- 一周Python数据类型学习-----数字
- 树莓派3创建ftp服务及远程桌面配置
- intellij idea中jstl导入错误500问题
- 对象相关的BIF
- Java学习笔记 01
- Qt 中Treewidget添加右键菜单
- Java Basic IO,Basic NIO,纲要
- 计算混淆矩阵和Kappa系数