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

編譯器管理的存儲有哪些

發布時間: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指令只讀

閱讀全文

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

熱點內容
24bit高頻精品解壓音樂 瀏覽:181
api程序員遇到更新 瀏覽:298
程序員程序運行搞笑圖 瀏覽:772
秦思怎麼下載app 瀏覽:691
發抖音怎麼發自己的APP網站 瀏覽:362
androidinbitmap 瀏覽:772
lzma源碼使用 瀏覽:748
ibm伺服器湖南經銷商雲伺服器 瀏覽:991
正規模板建站配雲伺服器商家 瀏覽:873
安卓清楚緩存命令 瀏覽:378
汽車壓縮機電磁離合器損壞怎麼修 瀏覽:507
怎麼提取安卓軟體 瀏覽:595
單片機和主機高速傳文件 瀏覽:478
男生直發加密需要剃光頭嗎 瀏覽:825
qtdesignerlinux 瀏覽:431
命令的幾要素 瀏覽:932
代理伺服器地址怎麼知道 瀏覽:172
漢語命令形 瀏覽:193
ACG官網下載的游戲怎麼解壓 瀏覽:963
stata交叉項命令 瀏覽:470