C / C ++ получает размер структуры

Сегодня, с моим большим удивлением, я обнаружил, что

Когда оператор sizeof применяется к классу, структуре или типу объединения, результатом является количество байтов в объекте этого типа плюс любое дополнение, добавленное для выравнивания элементов по границам слова. Результат не обязательно соответствует размеру, вычисленному путем сложения требований к хранилищу отдельных элементов.

Я не знал об этом и почти уверен, что эта штука нарушает часть моего старого кода: чтобы читать двоичные файлы, я раньше были такие структуры: Я знаю, что это неправильный способ чтения / записи двоичных данных: у меня был бы другой результат в зависимости от порядка байтов машины и прочего. В любом случае, этот метод самый быстрый, я просто пытаюсь прочитать некоторые двоичные данные, чтобы быстро получить их содержимое, а не написать хорошее приложение, которое я собираюсь использовать в будущем или выпустить.

11
задан peoro 21 November 2010 в 22:16
поделиться