強制內聯和強制不內聯

2021-06-03 23:36:17 字數 484 閱讀 9192

1.強制不內聯

乙個函式,如果**量比較少的話,用 -o3優化開關的話,gcc有可能將這個函式強制內聯(inline)即使,你在函式前沒有寫inline助記符。

如果是乙個手寫彙編的函式,那樣的話很有可能破壞引數。gcc裡有強制不內聯的,用法如下

void foo()

__attribute__((noinline));

但是有的gcc可能會忽略 noinline。

那麼你可以將你實現的這個函式寫到呼叫函式之後,就不會被inline了。這是因為編譯器gcc只內聯當前函式之前可見(實現**在前)的函式。

2.優化時無法識別inline函式中的asm彙編

當gcc嘗試內聯乙個函式時,如果該函式中存在內聯彙編,則該彙編語句塊可能被丟棄;

...__inline____attribute__((always_inline))

int increment(int volatile *add, int inc)

div強制換行和強制不換行

1 強制不換行,同時以省略號結尾。你好朋友朋友朋友我為什麼不能看到效果啊 2 css自動換行 div3 css強制英文單詞斷行 div若是div巢狀,要使內層div根據內容自動換行,則可只設定外層的div寬,和 white spance nowrap即可。word break break all和w...

css強制換行和強制不換行

中文情況下 我們用div,p,ul,li 等塊級元素 布局給其設定了特定的width,那麼就會自動的換行。用span,a 等內聯元素 設定了display inline block,或者display block 也可以自動換行了。div布局 含英文不會自動換行,會超出來 div布局 強制換行 我們...

RPM的強制安裝和強制解除安裝

在做rpm軟體適配的時候,經常會出現需要自己安裝額外的安裝包,包名中的版本號不一致也會出現提示,要安裝統一版本號的軟體包,並且還會出現對更新軟體包的依賴,在已經存在軟體包的情況下,按需公升級軟體包,可以使用公升級安裝 rpm uvh rpm如果公升級出錯,可以執行強制安裝實現對軟體包的版本更新 rp...