Problema de alineación de bytes de VC++
=4+4 (complementario) +8+1+7 (complementario)
De hecho, este es el tratamiento especial de VC para el almacenamiento de variables. Para mejorar la velocidad de almacenamiento de la CPU, VC "alinea" las direcciones iniciales de algunas variables. De forma predeterminada, VC estipula que el desplazamiento de la dirección inicial de cada variable miembro en relación con la dirección inicial de la estructura debe ser un múltiplo del número de bytes ocupados por el tipo de variable. Las alineaciones de tipos comunes se enumeran a continuación (vc6.0, sistemas de 32 bits).
Tipo
Alineación (el desplazamiento de la dirección inicial del almacenamiento de variables en relación con la dirección inicial de la estructura)
Caracteres
El desplazamiento debe ser un múltiplo de sizeof(char), es decir, 1
int
El desplazamiento debe ser un múltiplo de sizeof(int), es decir, 4
< p debe ser múltiplo de 4
flotante
el desplazamiento debe ser 4 veces el tamaño de(flotante)
doble
el desplazamiento debe ser 8 veces el tamaño de (doble)
Corto
el desplazamiento debe ser 2 veces el tamaño de (corto)
el desplazamiento debe ser un múltiplo de 2
el desplazamiento debe ser múltiplo de 2
el desplazamiento debe ser múltiplo de 2
el desplazamiento debe ser múltiplo de 2
el desplazamiento debe ser un múltiplo de 2
p>el desplazamiento debe ser un múltiplo de 2
el desplazamiento debe ser un múltiplo de 2
el desplazamiento debe ser un múltiplo de 2