inline 内联函数

在函数调用时像宏定义一样把函数体代码展开,节省了参数压栈,恢复现场等的函数调用的时间空间开销。

与宏定义的区别是,宏定义是在预处理的时候,内联函数是在编译器执行的时候。宏的缺点,不能访问对象的私有成员,容易产生二义性,有时候需要加上括号。

用关键字inline,但是类中的函数不管有没有inline一般默认为内联函数。

要注意使用内联时注意代码的暴露。


内联函数注意:

1递归函数不能定义为内联函数

2含有循环和switch结构的函数不能定义为内联函数,否则编译器也会视为普通函数

3必须先定义后使用,就是不能仅仅在使用前声明,而是要必须声明的同时给出定义的函数体才有效。

4对于包含许多语句的大函数,编译器也会默认为普通函数

4不能进行异常接口声明

猜你喜欢

转载自blog.csdn.net/shiyuqing1207/article/details/46357087
今日推荐