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

编译器管理的存储有哪些

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

阅读全文

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

热点内容
卓岚串口服务器如何使用 浏览:438
pdf周振甫 浏览:756
程序员35岁生日图片 浏览:626
矩形密封圈的压缩量 浏览:455
信息安全中图像加密技术毕业论文 浏览:536
gear2刷android 浏览:79
怎么用安卓下载樱校 浏览:580
现在什么app可以赚钱 浏览:155
基础梁钢筋图纸未标注加密区间距 浏览:469
通达信指标源码公式半透明 浏览:956
开发什么手机app好 浏览:319
csgo如何在游戏里进入完美服务器 浏览:190
编程教育老师成长心态 浏览:257
音频采集单片机 浏览:590
加密管的优点 浏览:280
dock基础命令 浏览:345
java编程爱好者 浏览:723
做外包程序员怎么样 浏览:866
程序员技术门槛 浏览:473
路由花生壳搭建web服务器地址 浏览:541