【C++复习五】inline和宏
来源:互联网 发布:java fastjson 转换 编辑:程序博客网 时间:2024/06/14 12:52
inline函数式C++引入的,C中是没有这个概念的
这两者有相同的地方却又不同
1、普通的函数会在调用的时候有个压栈的操作,待函数执行完会pop出栈中内容继续执行,不知道这么理解对不对,希望看到的前辈们能够指正
但是inline函数和宏就不同,这两者会在调用的时候直接把代码带入到对应的位置,所以就减少了压栈的操作,提高性能
2、inline可以作为成员函数,但是宏却不行;宏可以定义变量,inline却只是用来修饰函数的,不可以用来定义变量
3、inline是一个真正的函数,会执行类型检查,返回者检查等操作,它是一个运行期的函数,而宏只是简单的带入,不会执行任何检查,是预编译期常量,就是说宏的内容会在编译前的时候就带入。
例如
#define fun(a,b) a*b; 代表了求a,b的乘积,如过a=c+d;b=x+y;那么值又会是什么呢,由于宏只是简单展开,所以结果会是c+d*x+y,并不是我们期望的(c+d)*(x+y),所以我们使用宏的时候应该尽可能的加括号,保证不会出现类似情况。
以上内容如有错误或者不完善,烦请大家指出,一起讨论,共同进步,谢谢(因为这段内容是我自己的理解,不一定正确)
- 【C++复习五】inline和宏
- inline函数和#define 宏 c/c++
- C/C++中宏和内敛函数(inline)的区别
- 宏和inline
- 关于宏和inline
- C中#define和inline的区别
- C中#define和inline的区别
- C inline
- C inline
- 复习c++-数据类型和转换
- 宏和内联inline函数
- inline和宏定义区别
- 宏和函数 inline区别
- c++中的inline和宏
- inline与C语言中的宏
- inline与C语言中的宏
- C和指针 五
- C++:为什么inline函数的定义要放在头文件里 + inline和宏定义的区别(暂未体会到)
- hdu2861
- 【翻译】通过CMD3.1来实现自定义基于海王星主题的Ext JS 4.1应用程序
- Android HAL 开发 (1)
- COMMTIMEOUTS详解(转)
- 中西医诊疗与软件测试
- 【C++复习五】inline和宏
- Android Notes 03 - Process and Thread
- 9.png图片的处理
- 第一个Spring程序
- 第四堂课后作业
- 优美语段摘抄
- 关于php的( No input file specified. )问题
- 如何加快网站的速度
- Android HAL 开发 (2)