2016-01-21 68 views
1

说,我有我的程序与O2编译,只是是否围绕功能编译影响内部函数

#pragma GCC push_options 
#pragma GCC optimize("O0") 
my_func 
{ 
    other_func(); 
} 
#pragma GCC pop_options 

是否编译还以任何方式影响other_func?

感谢

+2

它如何影响'other_func'?这只是一个电话。 'other_func'的设置是由定义了'other_func'的地方的编译指示和编译器设置决定的,也就是它的主体实现的地方。 –

+0

这就是我的想法。但没有发现这方面的信息。谢谢 – CRC

+0

使用'push_options'和'pop_options'为'optimize'编译器创建一个本地“范围”,[见这里](https://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option- Pragmas.html#功能 - 特定选项,编译指示)。也就是说,只有'optimze'编译指示后面的函数,但在用'pop_options'恢复旧设置之前,应该编译优化级别0。 –

回答

0

它不会影响other_func(),因为它是一个JMP指令在这里assamble。