一、C++ 编译优化 - 没有 inline 关键字修饰的函数也可能被内联
1、函数内联的不确定性
现在的 C++ 编译器能够进行编译优化 ,
使用了 inline 声明的 内联函数 , 编译器 可能不会允许该函数...关键字修饰的函数 , C++编译器 根据 函数特性 和 调用频率 , 结合当前的 程序执行效率 和 综合性能 , 决定是否将函数进行内联 ;
内联函数的目的是减少函数调用的开销 , 提高程序的执行效率...;
编译器在决定是否内联函数时 , 会考虑函数的复杂性 , 大小和调用次数等因素 ;
如果 函数比较简单 且被频繁调用 , 编译器可能会选择将其内联 , 以提高程序的执行效率 ;
二、C++ 编译器内联限制...1、内联失败的几种情况
内联失败的几种情况 : 如果 内联函数 有如下情况 , 即使使用 inline 关键字声明内联函数 , 也是无效的 ;
函数中存在循环 : 内联函数中 不能存在任何形式的 循环语句..., 内联直接失败 ;
内联函数声明在调用之后 : 由于内联函数不能进行声明操作 , 内联函数的声明与定义必须在一起 , 如果内联函数调用在声明定义之前 , 说明该内联函数进行了单独的声明 , 该函数的内联一定会失败