размера любого типа данных зависит от поставщиков считают SizeOf (INT) = 4 байта и SizeOf (Char) = 1 байт
int main()
{
struct ex//ex is tag for this structure
{
char c;
int i;
};//this is the just declaration that ex tag is of the form
struct ex x,y,z;//memory will be allocated here
printf("%u %u %u\n",x,y,z);
printf("%u %u %u\n",&x,&y,&z);
printf("%u %u %u\n",sizeof(x),sizeof(y),sizeof(z));
printf("%u %u %u\n",sizeof(x.i),sizeof(y.i),sizeof(z.i));
printf("%u %u %u\n",sizeof(x.c),sizeof(y.c),sizeof(z.c));
return 1;
}
Выход
Здесь для заполнения символа добавляется, чтобы удовлетворить заданную константу который также поставщики зависимой
Но увидеть следующий код:
struct record
{
int id;
char name[20];
float salary;
};
struct record student;
SizeOf (студент); ====> 28bytes. , потому что нет необходимости добавлять отступы для символьного массива
[Иллюстративная программа.] (Http://ideone.com/JMGNhP) – jxh
Представьте, было ли это пять байтов, и вам был выделен массив из двух. Как можно выровнять оба целых числа? –