宏定义和内联函数的区别
- 宏定义和内联函数都是为了使得程序减少函数的调用而花费的开销,提高了执行效率
- 宏定义只是作简单的文本替换,而内联函数则是在调用出展开
- 宏定义在预处理时作替换,而内联函数在编译时展开
- 内联函数会做类型、语法检查,而宏不具有这样的功能
- 宏在作函数时,容易出现二义性
参考链接:
https://blog.csdn.net/leo115/article/details/7906102
https://www.cnblogs.com/nufangrensheng/p/3626983.html
http://huxiongwei.spaces.eepw.com.cn/articles/article/item/85841
宏定义和内联函数的区别相关推荐
- 宏定义和内联函数的学习
宏定义可以提高效率,但是宏不是函数. 预编译通过代码复制的方式代替函数调用,省去了诸如函数压栈等系统过程,从而提高了效率.但是由于宏定义仅仅是代码替换,所以引起很多问题. #define MAX(a ...
- 【C/C++】宏函数与内联函数的区别
[C/C++]宏函数与内联函数的区别 文章目录 [C/C++]宏函数与内联函数的区别 一.概念 二.特性 三.优缺点 3.1 内联函数的优缺点? 3.2 宏的优缺点? 四.笔试题 4.1 为什么要是用 ...
- C++的内联函数和非内联函数的区别
一.内联函数和非内联函数的定义 1.内联函数 inline void test(); void test() { cout<<"test"<<endl; } ...
- 带参宏定义和带参函数的区别
在带参宏定义中,不会为形式参数分配内存,因此不必指明数据类型.而在宏调用中,实参包含了具体的数据,要用它们去代换形参,因此必须指明数据类型. 这一点和函数是不同的:在函数中,形参和实参是两个不同的变量 ...
- c++学习笔记内联函数,函数重载,默认参数
c++学习笔记内联函数,函数重载,默认参数 1 inline内联函数 C++中的const常量可以替代宏常数定义,如: const int A = 3; #define A 3 C++中是否有解决 ...
- 内联函数和宏定义的区别
用内联取代宏: 1.内联函数在运行时可调试,而宏定义不可以; 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会: 3.内联函数可以访问类的成员变量,宏定义则不能 ...
- 内联函数与宏函数的区别
内联函数 概念 以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率 特性 inline是一种以空间换时间的做法,省去调用 ...
- c语言中void和define,C语言里面的内联函数(inline)与宏定义(#define)探讨
C语言里面的内联函数(inline)与宏定义(#define)探讨 先简明扼要,说下关键: 1.内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样 ...
- C++中宏与内联函数
1宏定义 C++是C的超集,C++继承了C的一个重要特性就是效率,在C中提高程序运行效率的重要手段就是宏,宏可以不用普通函数的调用但使用起来就像普通函数调用一样,宏的实现采用的是预处理器而不是编译器, ...
最新文章
- python线程执行带有参数的任务(args、kwargs)
- cmake linux编译,Ubuntu 16.04编译cmake源码
- java数字转换成字符串
- Ubuntu下使用AMD APP编写OpenCL程序
- ajax取消数据获取
- 【redis】redis的bind配置
- [地图SkyLine二次开发]框架(2)
- 2017美赛A题论文阅读笔记
- 用uniapp做的一个在线简历,可以发布成为微信小程序,给面试加分
- postman实现接口请求
- 多校区网络直播系统解决方案
- Vue项目——文章发布和修改
- 【踩坑日记】Vue组件@click事件点击没有反应
- Android的主线程与子线程
- 李建忠设计模式——享元模式
- 基于人脸识别和瞳孔检测的屏幕亮度自适应调节装置
- 玩转Redis-干掉钉子户-没有设置过期时间的key
- [bzoj4011][DP]落忆枫音
- swing中通过.class文件(把.java都删除)打包成jar文件,使用皮肤包遇到的问题。
- js导出图片添加水印