1.内联函数
1.1概念
以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。
inline int ADD(int left, int right)
{
return left+right;
}
int main()
{
int ret=0;
ret=ADD(1,2);
return ret;
}
1.2特性
- 常常用于需要频繁调用的小函数,在调用的时候对函数进行展开,Debug版本下面默认不展开
- 内联函数可以认为没有地址
- inline是一种用空间换时间的做法,在编译阶段,会用函数体调用函数调用
- inline对于编译器而言只是一种建议,不同编译器关于inline的实现机制可能不同
- 建议使用对象:函数规模较小,不递归,频繁调用
- 内联说明只是向编译器发出的一个请求,编译器可以选择忽略这个请求
- inline不建议生命和定义分离,分离会导致连接错误
2.宏的优缺点
2.1优点
1.增强代码的复用性
2.提高性能
2.2缺点
1.不方便调用宏(因为预编译阶段进行了替换)
2.导致代码可读性变差,维护性变差,容易误用。
3.没有类型安全的检查。
2.3c++有哪些技术代替宏
1.常量定义换用const enum
2.短小函数定义,换用内联函数