Condividi tramite


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;
}