Какова структура упаковки по умолчанию с использованием cl / gcc / clang?

В msdn для опции компилятора cl / Zp упоминается, что «упаковывает структуры на 8-байтовых границах (по умолчанию)». Означает ли это, что если существует тип данных размером> 8 байт, по умолчанию (без параметра компилятора или пакета прагмы) он не будет естественным образом выровнен и скорее будет иметь 8-байтовое выравнивание. Если да, то это случай с GCC / Clang?

Я проверил на GCC, используя -fpack-structа также __uint128_t, что у него нет таких по умолчанию. Например sizeof(tStruct) 32 и 24:

struct tStruct {
uint64_t    a;
__uint128_t b;
};

Я не могу проверить то же самое на окнах, поскольку он не обеспечивает какой-либо тип данных> 8 байт.

4

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]