ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
484333 Топик полностью
Юра (29.01.2014 21:10, просмотров: 1) ответил fk0 на Как d выравнять на границу sizeof(int) ? Менять тип d -- нельзя.
Мозги замерзли. Приходит наум только лобовое решение. typedef struct { int a; short b; union{ char char_c; int int_c; }char2; char d[]; }s; #define c char2.char_c int main(){ s sss; // Создать экземпляр для примера sss.a = 5; // Пример обращения sss.c = 6; // Пример обращения printf("sizeof(struct s)=%u\n", sizeof( s )); // без "struct"! printf("offsetof(struct s, a)=%u\n", offsetof(s, a)); printf("offsetof(struct s, b)=%u\n", offsetof(s, b)); printf("offsetof(struct s, c)=%u\n", offsetof(s, c)); printf("offsetof(struct s, d)=%u\n", offsetof(s, d[0])); return 0; }