下面哪些特性可能导致代码体积膨胀:
A 宏定义
B 模板
C 内联函数
D 递归
A 宏定义会单纯的替换,也就是如果宏定义替换的内容会成倍复制,所以会导致代码膨胀
B 模板的调用,会根据调用的参数,生成模板对应的实际调用的函数体,如果调用的参数不同,会生成不同的代码,所以会导致代码膨胀
C 内联函数会拷贝至调用的位置,如果调用多次回导致代码膨胀,,
内联也是在编译时替换,所以也
可能导致代码体积膨胀。
但是注意了:
若这个函数被调用了一次,那么
内联
直接被插入到函数调用出,就直接没有了这个函数符号了,若加上优化,这一句代码可能会被优化没有,所以,也可能使
代码体积减小
。
D选项是容易爆栈,不是代码区。