Методы зависят от компилятора.
Преимущества обычно не много, кроме как потенциально уменьшают объем памяти, потребляемой вашей программой. Это преимущество стоит только на машинах с небольшим количеством ресурсов (например, памяти), что означает, что он редко необходим для современного оборудования.
На практике стоимость сокращается или исключается из-за аппаратного обеспечения. Обычными целями заполнения являются производительность и исключение аппаратных исключений путем выравнивания элементов структуры таким образом, который подходит для хост-системы. Запрет заполнения в основном отключает все преимущества отступов.
Сохранение нескольких байтов, или даже нескольких килобайт, редко стоит того, чтобы повлиять на производительность или дополнительные условия ошибки. Если вы выполняете определенные типы разработки (например, на встроенной системе с ограниченными ресурсами), это может быть полезно, но даже тогда не всегда.
Это не является частью стандарта C, но компиляторы имеют возможности для его обработки в качестве расширений. Однако разные компиляторы делают это по-другому, и если вам нужна помощь, вы должны сказать нам, какой компилятор вы используете. Вы также можете сказать нам, почему вы этого хотите. –
Совет: вы не хотите, вам это не нужно. Избегайте этого, если это абсолютно необходимо. – joop
см. Это http://stackoverflow.com/questions/5397447/struct-padding-in-c – VolAnd