Avviso del compilatore (livello 1) C4742
'variable' ha un allineamento diverso in 'file1' e 'file2': number1 e number2
Una variabile esterna a cui è stato fatto riferimento o definito in due file ha un allineamento diverso in tali file.
Osservazioni:
Questo avviso viene generato quando il compilatore rileva che alignof
per la variabile in file1 è diverso da alignof
per la variabile in file2. Ciò può essere causato dall'uso di tipi incompatibili durante la dichiarazione di variabile in file diversi o tramite la mancata corrispondenza #pragma pack
in file diversi.
Per risolvere questo avviso, usare la stessa definizione del tipo o usare nomi diversi per le variabili.
Per altre informazioni, vedere pack
Operatore e alignof
.
Esempio
Si tratta del primo file che definisce il tipo.
// C4742a.c
// compile with: /c
struct X {
char x, y, z, w;
} global;
L'esempio seguente genera l'errore C4742.
// C4742b.c
// compile with: C4742a.c /W1 /GL
// C4742 expected
extern struct X {
int a;
} global;
int main() {
global.a = 0;
}