2011-05-16 76 views
1

我的問題有以下幾點:GCC:關於GCC「優化」和「內聯」的定義問題

1)如果我告訴GCC 優化現有的爲特定的源文件中的代碼,那麼這將是應用於從該文件調用的所有函數(可能駐留在不同的源文件中),還是僅適用於本文件中存在的函數/代碼?也就是說,文件優化是否會有遞歸行爲? 2)如果我聲明一個函數爲內聯(這樣我就不會獲得函數開銷),並且這個函數被聲明爲一個文件,在這個文件中我強制GCC不應用優化,那麼如果我從這個函數調用函數另一個源文件,我仍然會得到沒有優化效果?

任何幫助將不勝感激。

回答

0

號問題2:

如果包括卑鄙與另一個源的內聯函數頭,則該函數將被內聯,它沒有任何意義編譯它,它已經內聯之前。

0

優化不是遞歸的 - 如果你不優化一個文件,那麼它只有那個文件中的功能不會被優化。至於內聯,函數可以在它被編譯的文件中內聯,通常通過#include機制,如果這是你所要求的(這遠不是清楚的)。