1. 程式人生 > >C 結構體大小問題

C 結構體大小問題

struct結構體的大小問題:

1.偏移量是結構體中成員所佔位元組的整數倍。

2.整個結構體所佔大小應該為結構體中最大成員的整數倍,不足就填充位元組。

例子如下:

#include "stdio.h"
#include "stdlib.h"
void main()
{
	struct getHowBig{
	int a;
	double b;
	char c;
	}struct1;
	printf("the struct is %d",sizeof(struct1));
	getchar();
}


int a 4位元組   double b 8位元組 char c 1位元組

a 佔用 0 1 2 3 下一個偏移量是4,4不能整除8,所以位元組填充到8,b放入,下一個偏移量是16,能整除1,直接放入c,一共佔用17位元組,但是17不能整除結構體中最大的成員 也就是double  位元組為8 ,所以填充位元組到24.