获取程序中的当前优化级别
Get current optimisation level inside a program
是否可以获得当前的优化级别?
我想要检查是否将正确的标志传递给了编译器。
它并没有真正获得优化级别,但我所做的是:
- 找到一个程序,它的大小和编译器选项不同
- 运行 并检查大小是否已更改。
感谢长颈鹿船长
您可以检查预定义的宏 __OPTIMIZE__
。例如:
bool isOptimized()
{
#ifdef __OPTIMIZE__
return true;
#else
return false;
#endif
}
还有许多其他宏指示其他类型的优化,例如有许多标志指示特定指令集优化已启用,如 __FSGSBASE__
、__SSE3__
、__k8
, 和 __corei7_avx__
.
是否可以获得当前的优化级别?
我想要检查是否将正确的标志传递给了编译器。
它并没有真正获得优化级别,但我所做的是:
- 找到一个程序,它的大小和编译器选项不同
- 运行 并检查大小是否已更改。
感谢长颈鹿船长
您可以检查预定义的宏 __OPTIMIZE__
。例如:
bool isOptimized()
{
#ifdef __OPTIMIZE__
return true;
#else
return false;
#endif
}
还有许多其他宏指示其他类型的优化,例如有许多标志指示特定指令集优化已启用,如 __FSGSBASE__
、__SSE3__
、__k8
, 和 __corei7_avx__
.