/*
* 结构体字节对齐:为了效率
* 1,结构体的大小一定是最大基本类型的整数倍
* 2,一般是以最大的基本类型为参照,进行对齐
* 3,成员的地址一定是自身大小的整数倍
*/
#include<stdio.h>
/*
* 结构体字节对齐:为了效率
* 1,结构体的大小一定是最大基本类型的整数倍
* 2,一般是以最大的基本类型为参照,进行对齐
* 3,成员的地址一定是自身大小的整数倍
*/
struct Int
{
int number;
}; //4个字节
struct DBInt
{
int number1;
int number2;
}; //8个字节
typedef struct
{
short num1; //2
char sex; //1
}Int32; //4个字节
typedef struct
{
char c; //1
short s; //2
char cc; //1 6 8 10 12
}Other; //6个字节
typedef struct
{
char c; //1
char cc; //1
short s; //2
}Other1; //4个字节
struct Array
{
char name[10]; //10 2*4=8 2
short i; //2
int age; //4
}; //16个字节
int main()
{
//struct Int 有几个字节
printf("%d\n", sizeof(struct Int));
printf("%d\n", sizeof(struct DBInt));
printf("%d\n", sizeof(Int32));
printf("%d\n", sizeof(Other));
printf("%d\n", sizeof(Other1));
printf("%d\n", sizeof(struct Array));
return 0;
}