inline函数 宏定义

来源:互联网 发布:new blue titler mac 编辑:程序博客网 时间:2024/05/16 10:51

inline函数

1、inline函数必须在函数定义时在函数前加上inline关键字才有效

2、程序员请求将函数定义为inline时,编译器不一定会满足这种要求,因为它可能认为函数过大或存在递归。但有些编译器没有启用这种特性

3、定义在类中的成员函数会自动地转换为inline函数

Q:内联函数的优缺点?

A:内联函数的优点是节省了函数调用的开销,缺点就是会消耗更多的内存。

Q:什么情况下把函数定义为内联?

A:以下两种情况不能把函数定义为内联

(1)函数过大,执行函数体的时间远大于函数调用的时间

(2)函数体中存在递归调用

Q:内联函数与#define的比较

A:

相同点:

(1)两者都是在编译时进行代码的替换

 不同点:

(1)宏定义只是简单的字符替换,内联函数有参数的类型检查和返回值

Q:什么情况下用宏定义,什么情况下用内联函数

A:宏定义一般用来定义常量,具有函数功能的代码最好定义为内联函数


0 0