c++ - 英特尔 C++ 编译器是否优化了代码中从未调用过的函数?

标签 c++ optimization compiler-construction intel

只是一些优化方面的考虑:

有谁知道英特尔 C++ 编译器(例如 ICC 13.0,当然,使用/O3 等优化选项编译)是否会自动优化掉任何未使用/未调用的结构/类/函数/变量像下面的 examplefun() 这样的代码:

         //...defining examplefunc()....//

         const int a=0;
         if (a>0) 
            int b=examplefunc();

最佳答案

编译器通常不会优化未使用的函数,除非它们是static,因此只能在特定模块中访问。但是,如果链接是在函数级别而不是模块级别完成的,链接器可能会删除函数。

您可以检查程序集输出、链接器映射,或使用类似 objdump 的东西检查函数是否包含在链接的二进制文件中。

关于c++ - 英特尔 C++ 编译器是否优化了代码中从未调用过的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522678/

相关文章:

c++ - undefined symbol : Symbol referencing errors. 没有输出写入 main

optimization - Hive - 两个表的高效连接

c++ - c++中变量的栈内存分配

css - 猫头鹰旋转木马或移动应用程序的图库 View

azure - Durandal SPA 使用构建部署命令中的优化器部署到 Azure 网站

c# - 动态使用运行时编译的程序集

Java 编译器树 API - 我该如何设置它?

c++ - 在 C++ 项目中使用 libjson

c++ - 如何使从科学计数法的转换更精确?

c++ - 重新定义错误