¿Alignas afecta el valor de sizeof?
#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;
}
Aquí está el código, paraalignas(double) unsigned char c[1024];
, significa elc
debe estar alineado pordouble
, eldouble
es8
bytes Por eso piensosizeof(c)
debiera ser1024*8
bytes, pero la salida de la consola es1024
.
Entonces estoy confundido. ¿Quién me puede decir la razón?