導航:首頁 > 源碼編譯 > 編譯器管理的存儲有哪些

編譯器管理的存儲有哪些

發布時間:2024-04-19 14:42:56

Ⅰ C語言中結構體在內存中的存儲方式

結構體在內存中的存儲方式,和常規的C語言變數、常量存儲方式類似,唯的不同在於對齊。


只所以要進行數據對齊是因為編譯器對結構的存儲的特殊處理能提高CPU存儲變數的速度,一般來說,32位的CPU內存以4位元組對齊,64位的CPU的以8位元組的對齊。一般可以使用#pragma pack()來指出對齊的位元組數。比如下面的代碼,在debug會顯示結構體test的內存大小為28,如果生成release版則所佔內存大小為32 。

#include<stdio.h>

#ifdef_DEBUG
#pragmapack(4)
structtest
{
charx[13];//13
intd;//4
doublef;//8
}ss;
#else
#pragmapack(8)
structtest
{
charx[13];//13
intd;//4
doublef;//8
}ss;
#endif

intmain(void){

printf("%d ",sizeof(ss));
return0;
}

Ⅱ C++程序運行過程中,各種類型的數據都是怎麼存儲的,主要存儲在哪些空間里

有5大存儲區域:
1:堆區 主要是用戶自己申請的內存,如new 運算符申請的內存空間
2:棧區 先進後出的存儲結構,局部變數,函數的調用,等
3:靜態存儲區 放局部,全局的靜態變數,和全局的變數 生命周期是整個應用程序
4:寄存器 系統調用
5:程序代碼區 你寫的代碼也需要放在內存中!

Ⅲ C51編譯器支持的存儲器類型有哪些

c51存儲器類型有bit
sbit
data
xdata
bdata
pdata
sfr
code等,可能不全面有遺漏
對應的物理存儲器是:
bit,即位數據:數據存儲器位定址區,即20h~2fh的范圍,共16個位元組,16*8=128個位,位地址00h~7fh,連續的。
sbit:特殊功能寄存器中的位數據:只有能夠被8整除的那些特殊功能寄存器中的各個位才能被稱為sbit,位地址80h~ffh,不連續的,間斷的。
data:數據區,對51為00h~7fh共128個位元組,對52為00h~ffh,共256個位元組,用mov定址,前128用直接定址或寄存器(r0~r7)定址,後128用r0、r1間接定址。
xdata:外部數據區,0000h~ffffh連續,用dptr間接定址(movx指令)
bdata:位定址去的位元組,20h~2fh
sfr:特殊功能寄存器(80h~ffh),直接定址
pdata:外部數據區,p2口保持數據,用r0r1間接定址(movx指令)
code:程序存儲器,用movc指令只讀

閱讀全文

與編譯器管理的存儲有哪些相關的資料

熱點內容
如何獲取嗶哩嗶哩app郵箱注冊 瀏覽:528
怎麼啟動arduino編譯環境 瀏覽:842
昕動app怎麼突然進不去 瀏覽:471
如何登錄內部伺服器 瀏覽:878
python讀取在線表格 瀏覽:1001
喝什麼茶能緩解壓抑 瀏覽:867
u命令無法打開 瀏覽:962
vue編譯後的js能爬嗎 瀏覽:453
解壓骰子推薦3代 瀏覽:749
安卓手機劃線密碼忘了怎麼解鎖 瀏覽:309
精美角度主圖指標源碼 瀏覽:278
程序員編程函數需要特別好嗎 瀏覽:183
fue加密毛發怎麼樣 瀏覽:929
網上考學歷app如何屏蔽 瀏覽:352
python矩陣庫 瀏覽:160
伺服器如何ping伺服器 瀏覽:281
雲伺服器雙機熱備怎麼做 瀏覽:100
安卓果盤高清帳號是什麼帳號 瀏覽:548
蘋果解激活鎖什麼叫伺服器解鎖 瀏覽:596
用海綿寶寶做解壓的東西 瀏覽:192