freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第六章運(yùn)行時(shí)存儲(chǔ)空間的組織和管理-展示頁(yè)

2024-08-16 13:21本頁(yè)面
  

【正文】 nt a = 2。 int b = 0。 }b。 12 double f。 8 long i。 4 char c2。 0 char c1。 對(duì)齊: char : 1, long : 4, double : 8 局部存儲(chǔ)分配 ? 例 在 X86/Linux機(jī)器的結(jié)果和 SPARC/Solaris工作站不一樣 , 是 20和 16。 8 }a。 4 double f。 1 char c2。 0 long i。 對(duì)齊: char : 1, long : 4, double : 8 局部存儲(chǔ)分配 ? 例 在 SPARC/Solaris工作站上下面兩個(gè)結(jié)構(gòu)體的 size分別是 24和 16, 為什么不一樣 ? typedef struct _a{ typedef struct _b{ char c1。 }a。 double f。 char c2。 long i。第六章 運(yùn)行時(shí)存儲(chǔ)空間的組織和管理 術(shù)語(yǔ) – 過(guò)程的 活動(dòng) 過(guò)程的一次執(zhí)行稱為過(guò)程的一次活動(dòng) – 活動(dòng)記錄 過(guò)程的活動(dòng)需要可執(zhí)行代碼和存放所需信息的存儲(chǔ)空間 ,后者稱為活動(dòng)記錄 本章內(nèi)容 ? 討論一個(gè)活動(dòng)記錄中的數(shù)據(jù)布局 ? 程序執(zhí)行過(guò)程中,所有活動(dòng)記錄的組織方式 第六章 運(yùn)行時(shí)存儲(chǔ)空間的組織和管理 ? 影響存儲(chǔ)分配策略的語(yǔ)言特征 – 過(guò)程能否遞歸 – 當(dāng)控制從過(guò)程的活動(dòng)返回時(shí) , 局部變量的值是否要保留 – 過(guò)程能否訪問(wèn)非局部變量 – 過(guò)程調(diào)用的參數(shù)傳遞方式 – 過(guò)程能否作為參數(shù)被傳遞 – 過(guò)程能否作為結(jié)果值傳遞 – 存儲(chǔ)塊能否在程序控制下動(dòng)態(tài)地分配 – 存儲(chǔ)塊是否必須顯式地釋放 局部存儲(chǔ)分配 過(guò)程 語(yǔ)言概念: 過(guò)程定義、 過(guò)程 調(diào)用、形式參數(shù)、實(shí)在參數(shù)、 活動(dòng)的 生存期 局部存儲(chǔ)分配 名字的作用域和綁定 名字的作用域 ? 一個(gè)聲明起作用的程序部分稱為該聲明的 作用域 ? 即使一個(gè)名字在程序中只聲明一次,該名字在程序運(yùn)行時(shí)也可能表示不同的數(shù)據(jù)對(duì)象 局部存儲(chǔ)分配 環(huán)境和狀態(tài) ? 環(huán)境把名字映射到左值,而狀態(tài)把左值映射到右值(即 名字到值有兩步映射 ) ? 賦值改變狀態(tài),但不改變環(huán)境 ? 過(guò)程調(diào)用改變環(huán)境 ? 如果環(huán)境將名字 x映射到存儲(chǔ)單元 s, 則說(shuō) x被綁定 到 s 名字 存儲(chǔ)單元 狀態(tài) 值 環(huán)境 局部存儲(chǔ)分配 靜態(tài)概念和動(dòng)態(tài)概念的對(duì)應(yīng) 靜 態(tài) 概 念 動(dòng) 態(tài) 對(duì) 應(yīng) 過(guò)程的定義 過(guò)程的活動(dòng) 局部存儲(chǔ)分配 靜態(tài)概念和動(dòng)態(tài)概念的對(duì)應(yīng) 靜 態(tài) 概 念 動(dòng) 態(tài) 對(duì) 應(yīng) 過(guò)程的定義 過(guò)程的活動(dòng) 名字的聲明 名字的綁定 局部存儲(chǔ)分配 靜態(tài)概念和動(dòng)態(tài)概念的對(duì)應(yīng) 靜 態(tài) 概 念 動(dòng) 態(tài) 對(duì) 應(yīng) 過(guò)程的定義 過(guò)程的活動(dòng) 名字的聲明 名字的綁定 聲明的作用域 綁定的生存期 局部存儲(chǔ)分配 活動(dòng)記錄 活動(dòng)記錄的常見布局 臨 時(shí) 數(shù) 據(jù) 參 數(shù) 局 部 數(shù) 據(jù) 機(jī) 器 狀 態(tài) 訪 問(wèn) 鏈 控 制 鏈 返 回 值 局部存儲(chǔ)分配 局部數(shù)據(jù)的布局 ? 字節(jié)是可編址內(nèi)存的最小單位 ? 變量所需的存儲(chǔ)空間可以根據(jù)其類型而靜態(tài)確定 ? 一個(gè)過(guò)程所聲明的局部變量 , 按這些變量聲明時(shí)出現(xiàn)的次序 , 在局部數(shù)據(jù)域中依次分配空間 ? 局部數(shù)據(jù)的地址可以用相對(duì)于活動(dòng)記錄中某個(gè)位置的地址來(lái)表示 ? 數(shù)據(jù)對(duì)象的存儲(chǔ)布局還有一個(gè)對(duì)齊問(wèn)題 局部存儲(chǔ)分配 ? 例 在 SPARC/Solaris工作站上下面兩個(gè)結(jié)構(gòu)體的 size分別是 24和 16, 為什么不一樣 ? typedef struct _a{ typedef struct _b{ char c1。 char c1。 char c2。 long i。 double f。 }b。 0 char c1。 4 char c2。 8 long i。 16 double f。 }b。 typedef struct _a{ typedef struct _b{ char c1。 0 long i。 1 char c2。 4 double f。 8 }a。 對(duì)齊: char : 1, long : 4, double : 4 局部存儲(chǔ)分配 程序塊 ? 本身含有局部變量聲明的語(yǔ)句 ? 可以嵌套 ? 最接近的嵌套 作用域規(guī)則 ? 并列程序塊不會(huì)同時(shí)活躍 ? 并列程序塊的變量可以重疊分配 局部存儲(chǔ)分配 main() / ? 例 ?/ { /? begin of B0 ?/ int a = 0。 { /? begin of B1 ?/ int b = 1。 } /? end of B2 ?/ { /? begin of B3 ?/ int b = 3。 int b = 0。 {/? begin of B2 ?/ int a = 2。 }/? end of B3 ?/ }/? end of B1 ?/ }/? end of B0 ?/ 聲 明 作 用 域 int a = 0。 B0 ? B1 int b = 1。 B2 int b = 3。 top_sp的值在此過(guò)程中被改變 返回值和參數(shù) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) top_sp 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的調(diào)用序列 (2) p把返回地址和當(dāng)前 base_sp的值存入 q的活動(dòng)記錄中,建立 q的訪問(wèn)鏈,增加 base_sp的值 返回值和參數(shù) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 控制鏈和返回地址 base_sp top_sp 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的調(diào)用序列 (3) q保存寄存器的值和其它機(jī)器狀態(tài)信息 返回值和參數(shù) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 控制鏈 和保存的機(jī)器狀態(tài) 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的調(diào)用序列 (4) q根據(jù)局部數(shù)據(jù)域和臨時(shí)數(shù)據(jù)域的大小增加 top_sp的值,初始化它的局部數(shù)據(jù),并開始執(zhí)行過(guò)程體 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 返回值和參數(shù) 返回值和參數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 全局棧式存儲(chǔ)分配 調(diào)用者 p和被調(diào)用者 q之間的任務(wù)劃分 被調(diào)用者 q的責(zé)任 調(diào)用者 p的責(zé)任 調(diào)用者 p的 活動(dòng)記錄 被調(diào)用者 q的活動(dòng)記錄 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 返回值和參數(shù) 返回值和參數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的返回序列 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 返回值和參數(shù) 返回值和參數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的返回序列 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 返回值 和參數(shù) 返回值和參數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (1) q把返回值置入鄰近 p的活動(dòng)記錄的地方 參數(shù)個(gè)數(shù)可變場(chǎng)合難以確定存放返回值的位置,因此通常用寄存器傳遞返回值 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的返回序列 (2) q對(duì)應(yīng)調(diào)用序列的步驟 (4),減小top_sp的值 返回值和參數(shù) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 控制鏈 和保存的機(jī)器狀態(tài) 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的返回序列 (3) q恢復(fù)寄存器 (包括 base_sp)和機(jī)器狀態(tài),返回 p 返回值和參數(shù) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的返回序列 返回值和參數(shù) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (4) p根據(jù)參數(shù)個(gè)數(shù)與類型和返回值類型調(diào)整 top_sp, 然后取出返回值 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參 數(shù) 參 數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (1) 函數(shù)返回值改成用寄存器傳遞 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (2) 編譯器產(chǎn)生將實(shí)參表達(dá)式逆序計(jì)算并將結(jié)果進(jìn)棧的代碼 自上而下依次是參數(shù) 1, …, 參數(shù)n 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (3) 被調(diào)用函數(shù)能準(zhǔn)確地知道第一個(gè)參數(shù)的位置 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (4) 被調(diào)用函數(shù)根據(jù)第一個(gè)參數(shù)到棧中取第二、第三個(gè)參數(shù)等等 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? C語(yǔ)言的 printf函 數(shù)就是按此方式, 用 C語(yǔ)言編寫的 下面語(yǔ)句的輸出? printf(“%d, %d, %d\n”)。 | int j = 20。 | return amp。 } | } 非局部名字的訪問(wèn) 本節(jié)介紹 ? 無(wú)過(guò)程嵌套的靜態(tài)作用域 ( C語(yǔ)言 ) ? 有過(guò)程嵌套的靜態(tài)作用域 ( Pascal語(yǔ)言 ) ? 動(dòng)態(tài)作用域 ( Lisp語(yǔ)言 ) 非局部名字的訪問(wèn)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1