首页 > 代码库 > C语言中的内存对齐
C语言中的内存对齐
由下面的测试代码可以总结出两点:(1)内存对齐是针对结构体而言的 (2)编译时char类型的申请的空间由其后面的数据类型决定。
#include<stdio.h> enum Season { Spring,Summer,Autumn }; enum ENUM Enum = Autumn; union UNION { int a; char b; double c; }; union UNION Union; struct STRUCT { char b; //4字节 int a; //4字节 char d; //4字节 int c; //4字节 }; struct STRUCT Struct; struct STRUCT2 { char b; //4字节 int a; //4字节 char d; //8字节 double c; //8字节 }; struct STRUCT2 Struct2; int main() { printf("%d\n",sizeof(Enum)); //4 枚举变量占4个字节 printf("%d\n",sizeof(Union)); //8 printf("%d\n",sizeof(Struct)); //16 内存对齐 printf("%d\n",sizeof(Struct2)); //24 内存对齐 return 0; }
C语言中的内存对齐
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。