#include <iostream>
using namespace std;
/*
什么时候使用内联函数?
1.函数代码体积不大
2.频繁调用的函数
*/
//使用inline修饰函数的声明或者实现,可以使其变成内联函数
//建议声明和实现都增加inline修饰
inline void func();
inline int sum(int v1, int v2);
inline void func() {
cout << "func()" << endl;
}
inline int sum(int v1, int v2) {
return v1 + v2;
}
//内联与宏
/*
1.内联函数和宏,都可以减少函数调用的开销
2.对比宏,内联函数多了语法检测和函数特性
3.#define sum(X) (X + X) //24
#inline int sum(int X){return X + X;}//22
int a = 10; sum(++a)
*/
#define add(n1, n2) n1 + n2
int main() {
func();//编译器会将函数调用直接展开为函数体代码,相当于直接执行cout << "func()" << endl
//不会为函数开辟栈空间(分配内存),执行效率提高
//会增加代码体积
int c = sum(10, 20);//相当于直接执行c = 10 + 20
cout << c << endl;
//
int n = add(10, 20);//宏替换,执行n=10 + 20
cout << n << endl;
getchar();
return 0;
}
//超过10行尽量不要内联
//有些函数即使声明为inline,也不一定会被编译器内联,比如递归函数
//无法展开为函数体代码,无法内联,如下:
//inline void run() {
// run();
//}
//int main() {
// run();
// return 0;
//}
表达式
//int a = 1;
//int b = 2;
//(a = b) = 3;//a = 3, b = 2
//(a > b ? a : b) = 4;//a大于b,返回a,否则返回b. a = 1, b = 4
C++内联函数
最新推荐文章于 2025-04-10 09:39:38 发布