IMO都使該功能僅具有翻譯單元的范圍?!办o態(tài)”和“靜態(tài)內(nèi)聯(lián)”功能有什么區(qū)別?為什么要inline放在頭文件中而不是.c文件中?
3 回答

繁華開滿天機(jī)
TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
根據(jù)我在GCC中的經(jīng)驗(yàn),我知道這一點(diǎn),static
并且static inline
在編譯器發(fā)出有關(guān)未使用功能的警告的方式方面有所不同。更準(zhǔn)確地說,當(dāng)您聲明static
函數(shù)且當(dāng)前轉(zhuǎn)換單元中未使用該函數(shù)時(shí),編譯器會(huì)生成有關(guān)未使用函數(shù)的警告,但可以通過將其更改為來禁止該警告static inline
。
因此,我傾向于認(rèn)為static
應(yīng)該在翻譯單元中使用它,并受益于額外的檢查編譯器來查找未使用的函數(shù)。并且static inline
應(yīng)在頭文件中使用,以提供可以內(nèi)聯(lián)的功能(由于缺少外部鏈接)而不會(huì)發(fā)出警告。
不幸的是,我找不到這種邏輯的任何證據(jù)。即使從GCC文檔中,我也無法得出結(jié)論,inline
可以禁止未使用的功能警告。如果有人會(huì)共享指向其描述的鏈接,我將不勝感激。
- 3 回答
- 0 關(guān)注
- 647 瀏覽
添加回答
舉報(bào)
0/150
提交
取消