只是一些优化方面的考虑:
有谁知道英特尔 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/