获取程序中的当前优化级别

Get current optimisation level inside a program

是否可以获得当前的优化级别?

我想要检查是否将正确的标志传递给了编译器。

它并没有真正获得优化级别,但我所做的是:

  • 找到一个程序,它的大小和编译器选项不同
  • 运行 并检查大小是否已更改。

感谢长颈鹿船长

您可以检查预定义的宏 __OPTIMIZE__。例如:

bool isOptimized()
{
#ifdef __OPTIMIZE__
    return true;
#else
    return false;
#endif
}

还有许多其他宏指示其他类型的优化,例如有许多标志指示特定指令集优化已启用,如 __FSGSBASE____SSE3____k8, 和 __corei7_avx__.