我在这个项目的源代码中看到了一个函数之前的这行代码。我想知道它有什么用处?
#pragma GCC optimize ("O3")
void somefunction()
{
....
}
请求解释指令中使用的每个参数。
感谢和问候。
Pragma是实现特定的,但在这种情况下(gcc),它将优化级别设置为3(高),类似于在命令行中使用-O3
的效果。
有关gcc
优化级别的详细信息以及响应的各个标志,请参见此处。
-O3
,但并不等同。特别是,它似乎没有启用诸如内联之类的过程间优化。在godbolt上的示例 - 实际上使用-O3
会导致please_inline_me()
被内联,但#pragma GCC optimize ("O3")
则不会。 - Nate Eldredge
#pragma
始终是实现定义的。请参考您的编译器文档。 - DevSolar