一、C++ 编译优化 - 没有 inline 关键字修饰的函数也可能被内联
1、函数内联的不确定性
现在的 C++ 编译器能够进行编译优化 ,
使用了 inline 声明的 内联函数 , 编译器 可能不会允许该函数...进行内联 ;
没有使用 inline 声明的 普通函数 , 如果频繁调用 , 编译器 可能会为了提高执行效率 , 将其内联 ;
内联函数的不确定性 : 编译器内联函数是基于 编译器的优化策略和代码的特性...来决定的 ;
不能保证所有函数都会被内联 ;
即使函数被内联 , 也不能保证 程序的性能 一定会提高 ;
2、C++ 编译器的内联优化
简单且频繁调用的函数 内联大概率成功 , 复杂的函数 大概率内联失败..., 内联成功可能会增加代码的大小 , 也可能会导致程序运行速度变慢 ;
可以通过设置调整 C++ 编译器 的参数 和 优化级别 , 优化编译后的程序运行效果 ;
3、内联优化细节
即使没有使用inline..., 内联直接失败 ;
内联函数声明在调用之后 : 由于内联函数不能进行声明操作 , 内联函数的声明与定义必须在一起 , 如果内联函数调用在声明定义之前 , 说明该内联函数进行了单独的声明 , 该函数的内联一定会失败