Почему alignof (max_align_t) 16? - PullRequest
2 голосов
/ 30 апреля 2020

Я использую Debian на процессоре Intel x86_64.

g cc (Debian 8.3.0) компилирует следующую программу

#include <stdio.h>
#include <stdalign.h>
#include <stddef.h>

int main(){
  printf("%zd\n",alignof(max_align_t));
}

и выводит

16

Какой тип данных требует выравнивания 16 байтов?

1 Ответ

1 голос
/ 01 мая 2020

На x86_64, _Alignof(long double)==16.

...