inline函数不能在for循环中使用的原因
2024-08-25 15:48:29
inline函数的作用继承了宏定义的优点,没有了参数压栈,代码生成等一部分操作,并且摒弃了没有检查编译规则的缺点;
另外要注意,内联函数一般只会用在函数内容非常简单的时候,这是因为,内联函数的代码会在任何调用它的地方展开,如果函数太复杂,代码膨胀带来的恶果很可能会大于效率的提高带来的益处。内联函数最重要的使用地方是用于类的存取函数。
原因1:
inline实际上“相当于”宏替换,就是把函数的二进制代码直接复制到调用的地方,因而inline代码不应该有跳转。而循环结构无法避免条件跳转,所以有循环的代码无法inline;
原因2:
inline是将代码copy到指定的位置,放在循环当中就会大量的复制代码;
这可以默认认为inline函数不能在for循环。
最新文章
- Linux:JDK配置
- 黑马-----内存模型和volatile详解
- 关于thenao.scan() fn函数参数的说明
- Power Point已经检测到你的显卡可能无法正确配置
- java List 排序 Collections.sort()
- Article Master Data Deviation
- MyBatis Oracle批量更新
- mysql 字段存储类型
- Linux系统下快速删除某个目录下大量文件
- codeforces 659D . Bicycle Race 几何
- [算法题] Remove Duplicates from Sorted Array ii
- UVA 12633 Super Rooks on Chessboard [fft 生成函数]
- js获取元素属性值为空的原因和解决办法
- python运维小技巧
- SQL Server临时表
- Python 日志管理封装
- 003-spring结合java类调用quartz
- Windows下配置Visualsvn Server时需要注意的几点事项
- JavaScript 代码块
- Codeforces #528 Div2 F (1087F) Rock-Paper-Scissors Champion 树状数组+set