一、C++ 编译优化 - 没有 inline 关键字修饰的函数也可能被内联
1、函数内联的不确定性
现在的 C++ 编译器能够进行编译优化 ,
使用了 inline 声明的 内联函数 , 编译器 可能不会允许该函数...进行内联 ;
没有使用 inline 声明的 普通函数 , 如果频繁调用 , 编译器 可能会为了提高执行效率 , 将其内联 ;
内联函数的不确定性 : 编译器内联函数是基于 编译器的优化策略和代码的特性..., 内联成功可能会增加代码的大小 , 也可能会导致程序运行速度变慢 ;
可以通过设置调整 C++ 编译器 的参数 和 优化级别 , 优化编译后的程序运行效果 ;
3、内联优化细节
即使没有使用inline...;
编译器在决定是否内联函数时 , 会考虑函数的复杂性 , 大小和调用次数等因素 ;
如果 函数比较简单 且被频繁调用 , 编译器可能会选择将其内联 , 以提高程序的执行效率 ;
二、C++ 编译器内联限制..., 如 : for / foreach / while / do while 循环 ;
函数中有很多条件判定 : 内联函数中 不能存在过多的条件判定语句 , 条件判断就意味着有无效的指令 , 非常浪费空间