首页 > 学院 > 开发设计 > 正文

内联函数

2019-11-11 04:07:41
字体:
来源:转载
供稿:网友

之前学过linux C语言,但C++却没有学过,经过一段时间工作,对C++也算有了基本的了解,但是却很不系统,最近准备乘新年伊始,好好系统学习一下C++,白天工作,只能晚上学习了,写博客,只是为了能让自己能够学会总结,理解透彻一些,也方便自己后期的学习。

内联函数与常规函数的比较

内联函数 常规函数
定义 inline double square(double x) {return x*x} double square(double x) {return x*x}
组合方式 内联函数相当于宏替换,直接用函数代码替换函数调用 每次执行函数调用指令时,先保存指令内存地址,再跳转到函数起点内存单元,执行函数代码,执行完毕后再跳转回来
使用场合 函数代码短,执行时间短于函数调用跳转时间,那么将节省函数代码执行时间,但代价是占用更多内存 如果代码较长,此时内联函数已不能节省执行时间,且会占用更多内存,那么就用常规函数

内联函数与宏的比较

虽然内联函数与宏类似,但是他们还是存在以下区别: 1.内联函数在运行时可调试,而宏定义不可以; 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 3.内联函数可以访问类的成员变量,宏定义则不能; 4.在类中声明同时定义的成员函数,自动转化为内联函数。

在通常情况下,如果宏执行类似函数的功能,那么尽量转化为内联函数。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表