40 lines
3.1 KiB
C
40 lines
3.1 KiB
C
|
|
#включить "тест.з"
|
|||
|
|
#включить "stdvv.c"
|
|||
|
|
#включить "rstdlib.h"
|
|||
|
|
|
|||
|
|
цел главн() {
|
|||
|
|
ПРОВЕРИТЬ(5, ({ структ { символ a; цел b; } __attribute__((packed)) x; размер(x); }));
|
|||
|
|
ПРОВЕРИТЬ(0, offsetof(структ __attribute__((packed)) { символ a; цел b; }, a));
|
|||
|
|
ПРОВЕРИТЬ(1, offsetof(структ __attribute__((packed)) { символ a; цел b; }, b));
|
|||
|
|
|
|||
|
|
ПРОВЕРИТЬ(5, ({ структ __attribute__((packed)) { символ a; цел b; } x; размер(x); }));
|
|||
|
|
ПРОВЕРИТЬ(0, offsetof(структ { символ a; цел b; } __attribute__((packed)), a));
|
|||
|
|
ПРОВЕРИТЬ(1, offsetof(структ { символ a; цел b; } __attribute__((packed)), b));
|
|||
|
|
|
|||
|
|
ПРОВЕРИТЬ(9, ({ типдеф структ { символ a; цел b[2]; } __attribute__((packed)) T; размер(T); }));
|
|||
|
|
ПРОВЕРИТЬ(9, ({ типдеф структ __attribute__((packed)) { символ a; цел b[2]; } T; размер(T); }));
|
|||
|
|
|
|||
|
|
ПРОВЕРИТЬ(1, offsetof(структ __attribute__((packed)) T { символ a; цел b[2]; }, b));
|
|||
|
|
ПРОВЕРИТЬ(1, _Выравнивание_типа(структ __attribute__((packed)) { символ a; цел b[2]; }));
|
|||
|
|
|
|||
|
|
ПРОВЕРИТЬ(8, ({ структ __attribute__((aligned(8))) { цел a; } x; _Выравнивание_типа(x); }));
|
|||
|
|
ПРОВЕРИТЬ(8, ({ структ { цел a; } __attribute__((aligned(8))) x; _Выравнивание_типа(x); }));
|
|||
|
|
|
|||
|
|
ПРОВЕРИТЬ(8, ({ структ __attribute__((aligned(8), packed)) { символ a; цел b; } x; _Выравнивание_типа(x); }));
|
|||
|
|
ПРОВЕРИТЬ(8, ({ структ { символ a; цел b; } __attribute__((aligned(8), packed)) x; _Выравнивание_типа(x); }));
|
|||
|
|
ПРОВЕРИТЬ(1, offsetof(структ __attribute__((aligned(8), packed)) { символ a; цел b; }, b));
|
|||
|
|
ПРОВЕРИТЬ(1, offsetof(структ { символ a; цел b; } __attribute__((aligned(8), packed)), b));
|
|||
|
|
|
|||
|
|
ПРОВЕРИТЬ(8, ({ структ __attribute__((aligned(8))) __attribute__((packed)) { символ a; цел b; } x; _Выравнивание_типа(x); }));
|
|||
|
|
ПРОВЕРИТЬ(8, ({ структ { символ a; цел b; } __attribute__((aligned(8))) __attribute__((packed)) x; _Выравнивание_типа(x); }));
|
|||
|
|
ПРОВЕРИТЬ(1, offsetof(структ __attribute__((aligned(8))) __attribute__((packed)) { символ a; цел b; }, b));
|
|||
|
|
ПРОВЕРИТЬ(1, offsetof(структ { символ a; цел b; } __attribute__((aligned(8))) __attribute__((packed)), b));
|
|||
|
|
|
|||
|
|
ПРОВЕРИТЬ(8, ({ структ __attribute__((aligned(8))) { символ a; цел b; } __attribute__((packed)) x; _Выравнивание_типа(x); }));
|
|||
|
|
ПРОВЕРИТЬ(1, offsetof(структ __attribute__((aligned(8))) { символ a; цел b; } __attribute__((packed)), b));
|
|||
|
|
|
|||
|
|
ПРОВЕРИТЬ(16, ({ структ __attribute__((aligned(8+8))) { символ a; цел b; } x; _Выравнивание_типа(x); }));
|
|||
|
|
|
|||
|
|
printf("OK\n");
|
|||
|
|
возврат 0;
|
|||
|
|
}
|