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

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

C編譯過(guò)程中,關(guān)于auto局部變量的符號(hào)表管理問(wèn)題?

C編譯過(guò)程中,關(guān)于auto局部變量的符號(hào)表管理問(wèn)題?

題目描述編譯程序編譯C語(yǔ)言的過(guò)程中,必須要通過(guò)操作符號(hào)表來(lái)確定各個(gè)被定義的符號(hào)(變量,數(shù)組,函數(shù),標(biāo)簽等)的地址,以便于將文本形式的代碼翻譯為二進(jìn)制機(jī)器碼.而所得到的ELF文件(.o/.exe)中的符號(hào)表節(jié)區(qū)(.symtab)只包含存儲(chǔ)類(lèi)型為static/extern的變量,而不包含auto局部變量.那么,局部變量是如何被編譯器翻譯的?題目來(lái)源及自己的思路來(lái)源: 編譯過(guò)程必須依靠符號(hào)表來(lái)實(shí)現(xiàn).編譯過(guò)程輸出ELF文件,而ELF文件的符號(hào)表節(jié)區(qū)(.symtab)并不包含局部變量.那么,局部變量是如何編譯的呢?自己的思路: 1.ELF文件是編譯過(guò)程的輸出,是最終的結(jié)果,它的符號(hào)表節(jié)區(qū)(.symtab)也僅僅是符號(hào)表操作的最終結(jié)果,無(wú)法反映整個(gè)編譯過(guò)程的符號(hào)表變化.所以,在編譯過(guò)程進(jìn)行的時(shí)候,局部變量是會(huì)出現(xiàn)在符號(hào)表之中的,而編譯程序據(jù)此確定局部變量的地址(局部變量位于棧中,其地址是相對(duì)棧指針sp的偏移量),進(jìn)而實(shí)現(xiàn)對(duì)局部變量的翻譯.2.符號(hào)表的操作包含增加項(xiàng)目,查找項(xiàng)目,刪除項(xiàng)目.在編譯過(guò)程結(jié)束時(shí),會(huì)跳出所有的函數(shù)與塊作用域,相應(yīng)的,棧內(nèi)存也會(huì)進(jìn)行出棧操作.而與之相關(guān)的局部變量也會(huì)從符號(hào)表之中被刪除掉,只保留靜態(tài)變量static,全局變量以及外部變量extern.所以,最終的輸出ELF文件的符號(hào)表節(jié)區(qū)(.symtab)沒(méi)有局部變量的內(nèi)容.問(wèn)題期望1.上述的思路是否正確?2.如果不正確,錯(cuò)誤在哪?要理解正確的思路,需要查找哪些方面的知識(shí)?
查看完整描述

2 回答

  • 2 回答
  • 0 關(guān)注
  • 721 瀏覽

添加回答

舉報(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)