32位和64位系统下 int、char、long、double所占的内存
2022/1/1 7:11:42
本文主要是介绍32位和64位系统下 int、char、long、double所占的内存,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
32位和64位系统下 int、char、long、double所占的内存
8字节为上限
C类型 | 30位机器(字节) | 64位机器(字节) |
char | 1 | 1 |
short | 2 | 2 |
int | 4 | 4 |
long int | 4 | 8 |
long long | 8 | 8 |
char * | 4 | 8 |
float | 4 | 4 |
double | 8 | 8 |
#include<stdio.h> struct A { int a; char b; double c; char d; }; struct B { char a; double b; char c; }; int main() { printf("int =%lu,char=%lu,double=%lu\n",sizeof(int),sizeof(char),sizeof(double)); printf("structA=%lu structB=%lu\n",sizeof(struct A),sizeof(struct B)); return 0; } //64位 最多可以8位字节对齐 (先4位,遇8位变8位对齐) //32位 最多可以4位字节对齐
//64位编译输出: int =4,char=1,double=8 structA=24 structB=24 // structA: 4+(1+3)+8+(1+7) = 24 // structB: (1+7)+8+(1+7) = 24 //未遇到8位数据类型时时4字节对齐,遇到8字节数据类型变为8字节对齐 //32位编译输出: int =4,char=1,double=8 structA=20 structB=16 // struct A : 4+(1+3)+8+(1+3) = 20 // struct B : (1+3)+8+(1+3) = 16 //不管怎么样都只能是4字节对齐
这篇关于32位和64位系统下 int、char、long、double所占的内存的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享