c/c++ 基本数据类型在16位、32位、64位操作系统下所占字节大小(存储空间)
数据类型 | 16位操作系统(byte) | 32位操作系统(byte) | 64位操作系统(byte) | 取值范围 |
char | 1 | 1 | 1 | -128 ~ 127 |
unsigned char | 1 | 1 | 1 | 0 ~ 255 |
short int / short | 2 | 2 | 2 | -32768~32767 |
unsigned short | 2 | 2 | 2 | 0 ~ 65535 |
int | 2 | 4 | 4 | -2147483648~2157483647 |
unsigned int | 2 | 4 | 4 | 0~4294967295 |
long int / long | 4 | 4 | 8 | -2147483648~2147483647 |
unsigned long | 4 | 4 | 8 | 0~42294967295 |
long long int / long long | 8 | 8 | 8 |
-9223372036854775808 |
double | 8 | 8 | 8 |
1.7E+10的负308次⽅~1.7E+10的正308次⽅ |
float | 4 | 4 | 4 | 3.4E+10的负38次⽅~3.4E+10的38次⽅ |
long double | 10/12 | 10/16 | 有效位10字节。32位为了对齐实际分配12字节;64位分配16字节 | |
指针 | 2 | 4 | 8 | / |
总结:常用的32位操作系统和64位操作系统对比:除了 * 与long随操作系统子长变化而变化外,其他的都固定不变:bool 1个字节 、char 1个字节、 int 4个字节、float 4个字节 、doubl 8个字节、long long 8个字节
扩展1:8bit = 1Byte (字节,即Byte,是由八个位组成的一个单元,也就是8个bit组成1个Byte) 、1024Byte = 1KB、1024KB = 1MB、1024MB = 1GB、1024GB = 1TB
示例1:
uint32_t* pRead = NULL; // 这是 uint32_t 类型的一个指针,它本身的大小是4字节或8字节指向一个内存地址(这个地址一般用16进制来表示)。
pRead = (uint32_t*)malloc(16); // 这是申请16个uint32_t的空间,并返回首地址。当 pRead += 5 时,表示它往后移 5 个 uint32_t 的距离,地址往后偏移 5*4 ,也就是在原地址(16进制)的基础上加上十进制的 5*4。如果使用 memcpy(pRead, pData, Data_Size * sizeof(uint32_t)) 这里复制的字节大小需要自己计算。
short* ts = NULL; // 这是 short 类型的一个指针,它本身的大小是4字节或8字节指向一个内存地址(这个地址一般用16进制来表示)。
short* ts = (short*)malloc(16); // 这是申请16个short的空间,并返回首地址。当 pRead += 5 时,表示它往后移 5 个 short 的距离,地址往后偏移 5*2 ,也就是在原地址(16进制)的基础上加上十进制的 5*2。如果使用 memcpy(pRead, pData, Data_Size * sizeof(short)) 这里复制的字节大小需要自己计算。
__EOF__

本文链接:https://www.cnblogs.com/fxw1/p/16924963.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:封兴旺,转载请注明原文链接:https://www.cnblogs.com/fxw1/p/16924963.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-11-25 uniapp兄弟组件如何修改数据?(一看机会!超级简约!)
2020-11-25 uniapp和vue 父向子传值、传方法及子向父传值。(一看就会!超级简约!)