1
说,我有我的程序与O2编译,只是是否围绕功能编译影响内部函数
#pragma GCC push_options
#pragma GCC optimize("O0")
my_func
{
other_func();
}
#pragma GCC pop_options
是否编译还以任何方式影响other_func?
感谢
说,我有我的程序与O2编译,只是是否围绕功能编译影响内部函数
#pragma GCC push_options
#pragma GCC optimize("O0")
my_func
{
other_func();
}
#pragma GCC pop_options
是否编译还以任何方式影响other_func?
感谢
它不会影响other_func(),因为它是一个JMP指令在这里assamble。
它如何影响'other_func'?这只是一个电话。 'other_func'的设置是由定义了'other_func'的地方的编译指示和编译器设置决定的,也就是它的主体实现的地方。 –
这就是我的想法。但没有发现这方面的信息。谢谢 – CRC
使用'push_options'和'pop_options'为'optimize'编译器创建一个本地“范围”,[见这里](https://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option- Pragmas.html#功能 - 特定选项,编译指示)。也就是说,只有'optimze'编译指示后面的函数,但在用'pop_options'恢复旧设置之前,应该编译优化级别0。 –