C/C++中宏和内敛函数(inline)的区别
来源:互联网 发布:淘宝中老年男士羽绒服 编辑:程序博客网 时间:2024/04/20 07:20
最近,老是有人问我,有关内敛函数和宏的区别,说了一遍又一遍,不想说了,写出来,想知道,看博客吧:
C/C++中如果函数前面加关键字 inline ,那么表示该函数是内敛函数,如下所示:
inline int Fun(int x) { return ((x > 5) && (x < 10)) ? x : 0; }从样子来说,内敛函数的功能和宏定义(#define )差不多,即在编译阶段进行替换,减少运行时间,提高运行效率。区别是宏定义没有语法检查,内敛函数有语法检查,更不会出错!
而宏展开只是简单的文本替换,有表达式换表达式,有参数换参数,
如#define fun(x) ((x > 5) && (x < 10)) ? x : 0
int c = 7;
int d = Fun(++c);
这里应该换为( (++c>5)&&(++c<10)? ++c:0 )
执行结果应该是10,10
但注意,如果改为内敛函数,这里结果应该是8,8. 因为函数是单向值传递!而宏替换是简单的文本替换!
- C/C++中宏和内敛函数(inline)的区别
- C中#define和inline的区别
- C中#define和inline的区别
- 【从C到C++学习笔记】内敛函数/内敛函数与带参数宏的区别/新的类型转换运算符
- c++中内敛函数与宏定义的区别
- 内敛函数(inline函数)
- inline内敛函数
- 内敛函数inline
- C/C++中内联(inline)函数的优点和缺点
- 内敛函数宏定义区别
- inline函数和#define 宏 c/c++
- c语言中inline函数
- Android中c++inline函数
- C\C++小知识:C\C++中#define和inline的区别
- inline函数和宏函数的区别
- inline函数和宏函数的区别
- inline函数和宏函数的区别
- inline函数和宏函数的区别
- 根据分隔符将一个长字符串分割保存到动态数组中(第二种方法)
- 数据流图懂不懂?
- 重温经典 ——《计算机网络 第五版》读书随想
- 通过PID获取进程名
- C/C++中的经典垃圾回收算法概论
- C/C++中宏和内敛函数(inline)的区别
- linux下tomcat自启动配置
- 一日一点RakNet(36)--FileListTransfer
- C语言中动态内存的堆和栈
- Mac系统如何卸载Sophos杀毒软件
- 保持饥饿,保持愚蠢 Stay Hungry,Stay Foolish
- 散列表(HashTable)探秘 --上
- 今天刚刚开通博客,来看看
- 重学设计模式 - Facade模式