码迷,mamicode.com
首页 > 编程语言 > 详细

C语言中的内存对齐

时间:2017-04-09 18:23:34      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:sizeof   语言   include   summer   har   color   stdio.h   int   针对   

  由下面的测试代码可以总结出两点:(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语言中的内存对齐

标签:sizeof   语言   include   summer   har   color   stdio.h   int   针对   

原文地址:http://www.cnblogs.com/Pual623548198/p/6685567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!