导航:首页 > 源码编译 > 编译器管理的存储有哪些

编译器管理的存储有哪些

发布时间: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指令只读

阅读全文

与编译器管理的存储有哪些相关的资料

热点内容
安卓手机文件怎么转到旧苹果手机 浏览:601
2015肖秀荣pdf 浏览:396
如何给手机的卡包加密 浏览:441
安卓微信如何更换铃声 浏览:599
程序员谈判场在哪里 浏览:413
山东有线服务器中断云主机 浏览:472
java截取文件名 浏览:463
jquery教程pdf 浏览:164
三略pdf 浏览:584
spiflash单片机 浏览:11
阿里云的域名怎么解析到国外服务器 浏览:299
app客户端开发用什么服务器 浏览:293
台湾人能备案云服务器吗云空间 浏览:468
程序员小哥哥都喜欢动漫 浏览:374
如何用免费亚马逊云搭建服务器 浏览:665
php评论功能实现代码 浏览:526
犀牛中移动物件命令 浏览:788
程序员上班期间可以戴耳机吗 浏览:257
服务器启动卡怎么使用 浏览:796
逛了一天累趴了来一歌解压句子 浏览:347