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。 –