<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識(shí) > 內(nèi)存知識(shí) > 編譯時(shí)分配內(nèi)存嗎?

        編譯時(shí)分配內(nèi)存嗎?

        時(shí)間: 本達(dá)868 分享

        編譯時(shí)分配內(nèi)存嗎?

          編譯時(shí)分配內(nèi)存嗎?編譯時(shí)是不分配內(nèi)存的。下面是學(xué)習(xí)啦小編為大家收集整理的一些相關(guān)知識(shí),希望對(duì)大家有幫助!

          編譯時(shí)分配內(nèi)存嗎?

          編譯時(shí)與運(yùn)行時(shí)的內(nèi)存情況

          1.編譯時(shí)不分配內(nèi)存

          編譯時(shí)是不分配內(nèi)存的。此時(shí)只是根據(jù)聲明時(shí)的類(lèi)型進(jìn)行占位,到以后程序執(zhí)行時(shí)分配內(nèi)存才會(huì)正確。所以聲明是給編譯器看的,聰明的編譯器能根據(jù)聲明幫你識(shí)別錯(cuò)誤。

          2.運(yùn)行時(shí)必分配內(nèi)存

          運(yùn)行時(shí)程序是必須調(diào)到“內(nèi)存”的。因?yàn)镃PU(其中有多個(gè)寄存器)只與內(nèi)存打交道的。程序在進(jìn)入實(shí)際內(nèi)存之前要首先分配物理內(nèi)存。

          3.編譯過(guò)程

          只能簡(jiǎn)單說(shuō)一下,因?yàn)槿绻敿?xì)的話,就是一本書(shū)了《編譯原理》。編譯器能夠識(shí)別語(yǔ)法,數(shù)據(jù)類(lèi)型等等。然后逐行逐句檢查編譯成二進(jìn)制數(shù)據(jù)的obj文件,然后再由鏈接程序?qū)⑵滏溄映梢粋€(gè)EXE文件。此時(shí)的程序是以EXE文件的形式存放在磁盤(pán)上。

          4.運(yùn)行過(guò)程

          當(dāng)執(zhí)行這個(gè)EXE文件以后,此程序就被加載到內(nèi)存中,成為進(jìn)程。此時(shí)一開(kāi)始程序會(huì)初始化一些全局對(duì)象,然后找到入口函數(shù)(main()或者WinMain()),就開(kāi)始按程序的執(zhí)行語(yǔ)句開(kāi)始執(zhí)行。此時(shí)需要的內(nèi)存只能在程序的堆上進(jìn)行動(dòng)態(tài)增加/釋放了。

          編譯時(shí)分配內(nèi)存嗎?另一種解釋

          1、所謂在編譯期間分配空間指的是靜態(tài)分配空間(相對(duì)于用new動(dòng)態(tài)申請(qǐng)空間),如全局變量或靜態(tài)變量(包括一些復(fù)雜類(lèi)型的常量),它們所需要的空間大小可以 明確計(jì)算出來(lái),并且不會(huì)再改變,因此它們可以直接存放在可執(zhí)行文件的特定的節(jié)里(而且包含初始化的值),程序運(yùn)行時(shí)也是直接將這個(gè)節(jié)加載到特定的段中,不 必在程序運(yùn)行期間用額外的代碼來(lái)產(chǎn)生這些變量。

          其實(shí)在運(yùn)行期間再看“變量”這個(gè)概念就不再具備編譯期間那么多的屬性了(諸如名稱(chēng),類(lèi)型,作用域,生存期等等),對(duì)應(yīng)的只是一塊內(nèi)存(只有首址和大小), 所以在運(yùn)行期間動(dòng)態(tài)申請(qǐng)的空間,是需要額外的代碼維護(hù),以確保不同變量不會(huì)混用內(nèi)存。比如寫(xiě)new表示有一塊內(nèi)存已經(jīng)被占用了,其它變量就不能再用它了; 寫(xiě)delete表示這塊內(nèi)存自由了,可以被其它變量使用了。(通常我們都是通過(guò)變量來(lái)使用內(nèi)存的,就編碼而言變量是給內(nèi)存塊起了個(gè)名字,用以區(qū)分彼此)

          內(nèi)存申請(qǐng)和釋放時(shí)機(jī)很重要,過(guò)早會(huì)丟失數(shù)據(jù),過(guò)遲會(huì)耗費(fèi)內(nèi)存。特定情況下編譯器可以幫我們完成這項(xiàng)復(fù)雜的工作(增加額外的代碼維護(hù)內(nèi)存空間,實(shí)現(xiàn)申請(qǐng)和釋 放)。從這個(gè)意義上講,局部自動(dòng)變量也是由編譯器負(fù)責(zé)分配空間的。進(jìn)一步講,內(nèi)存管理用到了我們常常掛在嘴邊的堆和棧這兩種數(shù)據(jù)結(jié)構(gòu)。

          最后對(duì)于“編譯器分配空間”這種不嚴(yán)謹(jǐn)?shù)恼f(shuō)法,你可以理解成編譯期間它為你規(guī)劃好了這些變量的內(nèi)存使用方案,這個(gè)方案寫(xiě)到可執(zhí)行文件里面了(該文件中包含若干并非出自你大腦衍生的代碼),直到程序運(yùn)行時(shí)才真正拿出來(lái)執(zhí)行。

          2、編譯其實(shí)只是一個(gè)掃描過(guò)程,進(jìn)行詞法語(yǔ)法檢查,代碼優(yōu)化而已,編譯程序越好,程序運(yùn)行的時(shí)候越高效。 我想你說(shuō)的“編譯時(shí)分配內(nèi)存”是指“編譯時(shí)賦初值”,它只是形成一個(gè)文本,檢查無(wú)錯(cuò)誤,并沒(méi)有分配內(nèi)存空間。

          當(dāng)你運(yùn)行時(shí),系統(tǒng)才把程序?qū)雰?nèi)存。一個(gè)進(jìn)程(即運(yùn)行中的程序)在主要包括以下五個(gè)分區(qū): 棧、堆、bss、data、code

          代碼(編譯后的二進(jìn)制代碼)放在code區(qū),代碼中生成的各種變量、常量按不同類(lèi)型分別存放在其它四個(gè)區(qū)。系統(tǒng)依照代碼順序執(zhí)行,然后依照代碼方案改變或調(diào)用數(shù)據(jù),這就是一個(gè)程序的運(yùn)行過(guò)程。

          3、

          編譯時(shí)分配內(nèi)存 --------------- 編譯時(shí)是不分配內(nèi)存的。此時(shí)只是根據(jù)聲明時(shí)的類(lèi)型進(jìn)行占位,到以后程序執(zhí)行時(shí)分配內(nèi)存才會(huì)正確。所以聲明是給編譯器看的,聰明的編譯器能根據(jù)聲明幫你識(shí)別錯(cuò)誤。

          運(yùn)行時(shí)分配內(nèi)存 --------------- 這是對(duì)的,運(yùn)行時(shí)程序是必須調(diào)到“內(nèi)存”的。因?yàn)镃PU(其中有多個(gè)寄存器)只與內(nèi)存打交道的。程序在進(jìn)入實(shí)際內(nèi)存之前要首先分配物理內(nèi)存。

          編譯過(guò)程 -------------- 只能簡(jiǎn)單說(shuō)一下,因?yàn)槿绻敿?xì)的話,就是一本書(shū)了《編譯原理》。編譯器能夠識(shí)別語(yǔ)法,數(shù)據(jù)類(lèi)型等等。然后逐行逐句檢查編譯成二進(jìn)制數(shù)據(jù)的obj文件,然后再由鏈接程序?qū)⑵滏溄映梢粋€(gè)EXE文件。此時(shí)的程序是以EXE文件的形式存放在磁盤(pán)上。

          運(yùn)行過(guò)程 -------------- 當(dāng)執(zhí)行這個(gè)EXE文件以后,此程序就被加載到內(nèi)存中,成為進(jìn)程。此時(shí)一開(kāi)始程序會(huì)初始化一些全局對(duì)象,然后找到入口函數(shù)(main()或者WinMain()),就開(kāi)始按程序的執(zhí)行語(yǔ)句開(kāi)始執(zhí)行。此時(shí)需要的內(nèi)存只能在程序的堆上進(jìn)行動(dòng)態(tài)增加/釋放了。

        1340756 主站蜘蛛池模板: 精品少妇av蜜臀av| 日韩老熟女av搜索结果| 日韩A人毛片精品无人区乱码| 精品一区二区三区四区色 | 久久天天躁狠狠躁夜夜2020老熟妇 | 亚洲国产日韩一区三区| 一个人看的www片| av午夜福利一片看久久| 欧美成人精品三级网站| 亚洲av无码片在线播放| 亚洲av乱码久久亚洲精品| 中文字幕av日韩有码| 大香j蕉75久久精品免费8| 狠狠色狠狠色综合日日不卡| 亚洲一区二区三区国产精品| 精品亚洲AⅤ无码午夜在线| 亚洲成av人片色午夜乱码| 天堂V亚洲国产V第一次| 香蕉在线精品一区二区| 日韩淫片毛片视频免费看| 欧美寡妇xxxx黑人猛交| 亚洲αⅴ无码乱码在线观看性色| 国产成人av在线影院无毒| 国内不卡一区二区三区| 饥渴老熟妇乱子伦视频| 九九热中文字幕在线视频| 538porm在线看国产亚洲| 日韩人妻少妇一区二区三区 | 国产亚洲精品久久久久久大师| 久久精品中文字幕少妇| 免费网站看V片在线毛| 激情综合五月天开心久久| 在线日韩日本国产亚洲| 欧美精品一区二区三区中文字幕| 成人看的污污超级黄网站免费| 污污污污污污WWW网站免费| 国产免费久久精品99reswag| 日本免费最新高清不卡视频| 日本成熟老妇乱| 亚洲国产成人综合精品| 伊在人亞洲香蕉精品區|