2016-01-21 66 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。