1, data type self-aligning
The starting address of the data type is an integer multiple of its size
2, the structure of the self-aligning
The structure's self-aligning value is the largest member size
3, specify the alignment
You can use the keyword #pragma pack (1) to specify the alignment value of the struct
4, valid alignment value
A valid alignment value is the smaller of its own alignment value and the specified alignment value. (That is, specifying an alignment value that exceeds its own alignment value is meaningless)
1#include <stdio.h>2 struct {3 intA//a single is 44 Charb[3];//The single size is 1 because the sum of the arrays is 35 DoubleC//a single is 46 }size; 7 intMain () {8 intv;9v=sizeof(size);Tenprintf ("%d", v);//The result is an integer multiple of 16 for 4 One return 0; A}
C language struct size sizeof (struct A)