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

编译器管理的存储有哪些

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

阅读全文

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

热点内容
虚拟机文件夹没东西 浏览:902
狗狗用什么app好 浏览:268
java代码反编译后出现特殊字符 浏览:990
oracle编程300经典 浏览:703
女生app取什么名字好听 浏览:395
msp430单片机串口 浏览:37
儿童压缩面膜怎么用法 浏览:93
新车压缩机坏了保修吗 浏览:548
艾默生压缩机说明书 浏览:291
超解压手法 浏览:415
如何获取服务器上的文件地址 浏览:679
文件夹题用另存为吗 浏览:639
各种编译类型为自然选择提供了 浏览:914
cnc玻璃精雕机编程 浏览:313
电脑复制中途改文件夹名字 浏览:498
批处理转exe反编译工具 浏览:77
pdf怎么换成图片 浏览:324
换位加密能够按照一定 浏览:390
安卓开发入门pdf 浏览:192
日医pdf 浏览:863