91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

gcc悄無聲色將靜態函數內聯了

發布時間:2020-07-01 00:05:41 來源:網絡 閱讀:969 作者:zsdnr 欄目:網絡安全

說到內聯,可能你還停在十幾年前甚至二十多年前的C++教典,c++有內聯關鍵字inline,甚至還用來與c做區分。c99開始c引入inline,gcc比c99早實現對inline支持,vc中c沒有關鍵字inline,inline只能用于c++,但有另一關鍵字__inline,但若你要用vc編譯gcc下c代碼,遇到cl抱怨不識別inline,只要將inline在預編譯宏中定義為__inline也就可以了。

gcc編譯器屬性中還有一個noinline,有了inline為什么還要來一個noinline。沒有用inline不就等于noinline了嗎。還有always_inline屬性。因為在實際中,定義為inline也不一定統統都會被內聯,內不內聯最后是由gcc編譯器決定,只是你的聲明會影響它的決定。同樣你沒有定義為inline,函數就不一定都隔離內聯,編譯器在優化中通常會為你決定內聯了一些函數,不論這個函數體積是大是小。noinline和always_inline屬性就是字面意義那樣了。

正好近日調試ffmpeg代碼,碰上一例子,用來作例證:

ffmpeg是個c代碼項目。

avformat_write_header是一個只有十行的函數,就是調用其它函數。

init_muxer是個體積比較大的靜態函數,沒有定義為內聯,卻內聯到了一個體積很小的函數(avformat_write_header)內。

gcc悄無聲色將靜態函數內聯了

 

gcc悄無聲色將靜態函數內聯了

 

gcc悄無聲色將靜態函數內聯了


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沐川县| 江陵县| 布尔津县| 富宁县| 汤原县| 沛县| 克拉玛依市| 阿克苏市| 滕州市| 逊克县| 呈贡县| 博兴县| 渭源县| 区。| 抚州市| 五大连池市| 富蕴县| 姜堰市| 邹平县| 新兴县| 清苑县| 平潭县| 永靖县| 葵青区| 岢岚县| 长兴县| 门头沟区| 泽普县| 乌什县| 康平县| 玉屏| 阿合奇县| 田林县| 桐柏县| 南皮县| 亳州市| 曲周县| 盐源县| 寻乌县| 遵义市| 白山市|