牛课网 | 选择
2016-05-11 10:38
211 查看
下面哪些特性可能导致代码体积膨胀:
A 宏定义
B 模板
C 内联函数
D 递归
A 宏定义会单纯的替换,也就是如果宏定义替换的内容会成倍复制,所以会导致代码膨胀
B 模板的调用,会根据调用的参数,生成模板对应的实际调用的函数体,如果调用的参数不同,会生成不同的代码,所以会导致代码膨胀
C 内联函数会拷贝至调用的位置,如果调用多次回导致代码膨胀,,内联也是在编译时替换,所以也 可能导致代码体积膨胀。
但是注意了:
若这个函数被调用了一次,那么 内联 直接被插入到函数调用出,就直接没有了这个函数符号了,若加上优化,这一句代码可能会被优化没有,所以,也可能使 代码体积减小 。
D选项是容易爆栈,不是代码区。
A 宏定义
B 模板
C 内联函数
D 递归
A 宏定义会单纯的替换,也就是如果宏定义替换的内容会成倍复制,所以会导致代码膨胀
B 模板的调用,会根据调用的参数,生成模板对应的实际调用的函数体,如果调用的参数不同,会生成不同的代码,所以会导致代码膨胀
C 内联函数会拷贝至调用的位置,如果调用多次回导致代码膨胀,,内联也是在编译时替换,所以也 可能导致代码体积膨胀。
但是注意了:
若这个函数被调用了一次,那么 内联 直接被插入到函数调用出,就直接没有了这个函数符号了,若加上优化,这一句代码可能会被优化没有,所以,也可能使 代码体积减小 。
D选项是容易爆栈,不是代码区。
相关文章推荐
- NYOJ 42 一笔画问题
- Excel 集計機能
- 引用
- ElasticSearch之初识
- leetcode笔记—Reorder List
- html5 record 修改采样率导致声音无法播放解决方案
- Apache POI系列教程2-1:poi入门教程--excel百万数据的导入导出
- 算法#05--神作:深入浅出傅里叶变换
- win环境下开启apache的压缩模块
- Android4.0 Launcher拖拽原理分析
- Activity动态添加Fragment
- SublimeText下C编译环境的设置
- 最大连续子数组和
- 【BZOJ3875】[Ahoi2014]骑士游戏【最短路】【DP】
- MPLS
- 最常见的电话号码
- java 解释readLine的原理及LineNumberReader的原理
- leetcode.216. Combination Sum III
- A Beginner's Guide To LVM [3/9]
- IGMP Snooping