Минимальное выравнивание (на данной платформе) такое, которое не дает сбоев. На x86-64 это один байт. На PowerP C или Spar c или RIS C -V это, вероятно, 4 или 8 байтов.
предпочтительным выравниванием является то, которое обычно, например, из-за шины процессора или кэшей процессора. На x86-64 для unsigned long long
это, вероятно, 8 байт. Любой менее выровненный доступ имеет снижение производительности.
Подробности относятся к целевому процессору и ABI специфицирует c (например, см. this ). Подумайте о кросс-компиляторах .
Семантика из C или C ++ не является полностью определенной и не полностью формализованной. Посмотрите на проект C ++ стандарта : он написан на английском языке sh, не формализован. Но смотрите также Frama- C (он имеет экспериментальный интерфейс для C ++) и CompCert . Читайте о неопределенное поведение .