孤独身影

文章
7
资源
0
加入时间
3年1月15天

C++相关问题-重复代码消除重复代码消除

重复代码消除C++编译器在很多时候会产生重复的代码,比如模板,外部内联函数和虚函数表都有可能在不同的编译单元里生成相同的代码。最简单的情况就拿模板来说,模板从本质上来讲很像宏,当模板在一个编译单元里被实例化时,它并不知道自己是否在别的编译单元也被实例化了。所以当一个模板在多个编译单元同时被实例化成相同的类型的时候,必然会生成重复的代码,把这些重复的代码保留下来会存在以下几个问题:空间浪费。地址较易出错。有可能两个指向同一个函数的指针会不相同。指令运行效率较慢。因为现代的CPU都会对指令和数据进行