第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

外排的問(wèn)題

外排的問(wèn)題

C++ C
慕尼黑8549860 2019-07-15 10:17:49
外排的問(wèn)題我理解“內(nèi)聯(lián)”本身就是對(duì)編譯器的一種建議,在它的設(shè)計(jì)過(guò)程中,它可能會(huì)或可能不會(huì)內(nèi)聯(lián)這個(gè)函數(shù),它還會(huì)生成可鏈接的對(duì)象代碼。我認(rèn)為“靜態(tài)內(nèi)聯(lián)”也是如此(可能是內(nèi)聯(lián),也可能不是內(nèi)聯(lián)),但是在內(nèi)聯(lián)時(shí)不會(huì)生成可鏈接的對(duì)象代碼(因?yàn)闆](méi)有其他模塊可以鏈接到它)。“內(nèi)插”在圖片中的位置是什么?假設(shè)我想用內(nèi)聯(lián)函數(shù)替換預(yù)處理器宏,并要求這個(gè)函數(shù)內(nèi)聯(lián)(例如,它使用_file_和_line_宏,應(yīng)該為調(diào)用方解析,而不是這個(gè)被調(diào)用的函數(shù))。也就是說(shuō),如果函數(shù)沒(méi)有內(nèi)聯(lián),我希望看到編譯器或鏈接器錯(cuò)誤。“extern inline”會(huì)這樣做嗎?(我假設(shè),如果沒(méi)有,除了堅(jiān)持宏之外,沒(méi)有其他方法可以實(shí)現(xiàn)這種行為。)C+和C之間有什么區(qū)別嗎?不同的編譯器供應(yīng)商和版本之間有區(qū)別嗎?
查看完整描述

3 回答

?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

在K&R C或C 89中,內(nèi)聯(lián)不是語(yǔ)言的一部分。許多編譯器將其實(shí)現(xiàn)為擴(kuò)展,但對(duì)于它的工作方式卻沒(méi)有定義的語(yǔ)義。GCC是最早實(shí)施內(nèi)聯(lián)的國(guó)家之一,并介紹了inlinestatic inline,和extern inline構(gòu)造;大多數(shù)預(yù)C99編譯器通常遵循它的要求。

GNU89:

  • inline

    :函數(shù)可能是內(nèi)聯(lián)的(不過(guò)只是個(gè)提示)。一個(gè)線外的版本總是被發(fā)出和外部可見(jiàn)。因此,您只能在一個(gè)編譯單元中定義這樣一個(gè)內(nèi)聯(lián),而其他每一個(gè)編譯單元都需要將其視為一個(gè)離線函數(shù)(否則在鏈接時(shí)會(huì)得到重復(fù)的符號(hào))。
  • extern inline

    不會(huì)生成出線版本,但可能會(huì)調(diào)用一個(gè)版本(因此,您必須在其他編譯單元中定義該版本)。不過(guò),單定義規(guī)則是適用的;出線版本必須具有與此處提供的內(nèi)聯(lián)代碼相同的代碼,以防編譯器調(diào)用該代碼。
  • static inline

    將不會(huì)生成一個(gè)外部可見(jiàn)的出線版本,盡管它可能會(huì)生成一個(gè)文件靜態(tài)版本?!耙粋€(gè)定義”規(guī)則不適用,因?yàn)閺膩?lái)沒(méi)有發(fā)出外部符號(hào),也沒(méi)有對(duì)外部符號(hào)的調(diào)用。

C99(或GNU99):

  • inline

    *與GNU89一樣“內(nèi)聯(lián)外掛”;沒(méi)有發(fā)出外部可見(jiàn)函數(shù),但可能會(huì)調(diào)用一個(gè)函數(shù),因此必須存在
  • extern inline

    類(lèi)似于GNU89“內(nèi)聯(lián)”:發(fā)出外部可見(jiàn)代碼,因此最多一個(gè)翻譯單元可以使用此代碼。
  • static inline

    *像GNU89“靜態(tài)內(nèi)聯(lián)”。這是gnu 89和c99之間唯一的便攜式

C+:

任何地方內(nèi)聯(lián)的函數(shù)都必須在任何地方內(nèi)聯(lián),定義相同。編譯器/鏈接器將排序符號(hào)的多個(gè)實(shí)例。沒(méi)有定義static inlineextern inline,盡管許多編譯器都有它們(通常遵循gnu 89模型)。


查看完整回答
反對(duì) 回復(fù) 2019-07-15
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

我相信你誤解了_和_基于以下陳述:

因?yàn)樗褂胈file_和_line_宏,應(yīng)該為調(diào)用方解析,而不是這個(gè)被調(diào)用的函數(shù)。

編譯有幾個(gè)階段,第一個(gè)階段是預(yù)處理。_因此,當(dāng)編譯器可以考慮內(nèi)聯(lián)函數(shù)時(shí),它們已經(jīng)被替換了。


查看完整回答
反對(duì) 回復(fù) 2019-07-15
  • 3 回答
  • 0 關(guān)注
  • 470 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)