C++基础之内联函数

来源:互联网 发布:设循环队列用数组 编辑:程序博客网 时间:2024/06/11 12:44

刚刚不停的翻找网页和自己试用来总结一下什么是内联函数,我写了内联函数,用反汇编来看和普通函数没有区别

内联函数的本质:就是函数

调用函数中系统做了什么:开辟栈空间、保护现场、传递参数、控制程序转移等等……这些都要花费时间

内联函数的由来:有一些函数,代码少,调用频繁,花费时间多了,效率低了,写成内联就会调用速度快了

内联函数的标识符:inline(实现的标识符,不是声明的,代码示例中理解)

内联函数的忌讳:不写循环、开关、递归这些语句

内联函数的有效性:1.标识符和函数体在一起有效;2.代码少有效(多少才算有效没有搜到),代码多了系统会当作内联失败,当作普通函数调用(不会报错)

内联BUG:当你内联函数中有静态变量,而内联失败,可就不止一个静态变量了

代码示例:

普通的内联函数:

inline void aa(int i){

i++:

}

理解是实现的标识符不是声明用的(标识符没有和函数体在一起,无效)

inline void aa(int i);

main(……)

void aa(int i)

{ i++;}

我们经常用内联函数,只是你可能不知道而已:类内部的函数,避开上面的忌讳,成员函数就是内联函数,不论有还是没有标识符

对于我学到的是:不去管成员函数是不是内联函数,写的一些小的函数且经常要用的函数,没有放在类里,就给加个标识符

(PanPen120原创 如有建议 请留言)




0 0
原创粉丝点击