内联函数分析
目录 1. 内联函数的声明 2. 内联函数的特性 3. 内联函数与编译器 4. 内联函数的限制 1. 内联函数的声明 在C++中,const常量可以代替宏常数定义,而宏代码段则推荐使用内联函数来代替。 C++中使用 inline 关键字声明内联函数 inline只是一种请求,编译器不一定允许这种请求 inline关键字必须和函数定义结合在一起 ,否则编译器会直接忽略内联请求 inline int func(int a, int b) { return a < b ? a : b; } 2. 内联函数的特性 C++编译器直接将 内联函数的函数体扩展到函数调用的地方 内联函数调用时 没有压栈、跳转、返回等额外开销 内联函数 具有参数检查、返回类型等普通函数特征 内联函数与宏代码段相比,保留了比普通函数效率更高、开销更小的优点,摒弃了宏代码段不经过编译器可能带来副作用的缺点 #include <stdio.h> #define MAX(a, b) ((a) < (b) ? (a) : (b)) inline int max(int a, int b) { return a < b ? a : b; } int main(int argc, char *argv[]) { int a1 = 1; int b1 = 3; int c1 = MAX(++a1, b1); int a2 = 1;