之前学过linux C语言,但C++却没有学过,经过一段时间工作,对C++也算有了基本的了解,但是却很不系统,最近准备乘新年伊始,好好系统学习一下C++,白天工作,只能晚上学习了,写博客,只是为了能让自己能够学会总结,理解透彻一些,也方便自己后期的学习。
内联函数 | 常规函数 | |
---|---|---|
定义 | inline double square(double x) {return x*x} | double square(double x) {return x*x} |
组合方式 | 内联函数相当于宏替换,直接用函数代码替换函数调用 | 每次执行函数调用指令时,先保存指令内存地址,再跳转到函数起点内存单元,执行函数代码,执行完毕后再跳转回来 |
使用场合 | 函数代码短,执行时间短于函数调用跳转时间,那么将节省函数代码执行时间,但代价是占用更多内存 | 如果代码较长,此时内联函数已不能节省执行时间,且会占用更多内存,那么就用常规函数 |
虽然内联函数与宏类似,但是他们还是存在以下区别: 1.内联函数在运行时可调试,而宏定义不可以; 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 3.内联函数可以访问类的成员变量,宏定义则不能; 4.在类中声明同时定义的成员函数,自动转化为内联函数。
在通常情况下,如果宏执行类似函数的功能,那么尽量转化为内联函数。
新闻热点
疑难解答