#include <iostream>
using namespace std;
int main()
{
alignas(double) unsigned char c[1024]; // array of characters, suitably aligned for doubles
alignas(16) char d[100]; // align on 16 byte boundary
cout<<sizeof(c)<<endl;
cout<<sizeof(d)<<endl;
constexpr int n = alignof(int); // ints are aligned on n byte boundarie
cout<<n<<endl;
}
Вот код, для alignas(double) unsigned char c[1024];, это означает, что c должен быть выровнен по значению double, а double - 8.
Поэтому я думаю, что sizeof(c) должен быть 1024*8 байтами, но консольный вывод 1024.
Так что я смущен. Кто может сказать мне причину?