Partager via


Avertissement du compilateur (niveau 1) C4742

'variable' a un alignement différent dans 'file1' et 'file2' : nombre1 et nombre2

Une variable externe référencée ou définie dans deux fichiers a un alignement différent dans ces fichiers.

Notes

Cet avertissement est émis lorsque le compilateur trouve que alignof pour la variable dans file1 diffère de alignof celle de la variable dans le fichier2. Cela peut être dû à l’utilisation de types incompatibles lors de la déclaration de variable dans différents fichiers ou à l’aide d’une non-correspondance #pragma pack dans différents fichiers.

Pour résoudre cet avertissement, utilisez la même définition de type ou utilisez des noms différents pour les variables.

Pour plus d’informations, consultez pack et alignof opérateur.

Exemple

Il s’agit du premier fichier qui définit le type.

// C4742a.c
// compile with: /c
struct X {
   char x, y, z, w;
} global;

L’exemple suivant génère l’erreur C4742.

// C4742b.c
// compile with: C4742a.c /W1 /GL
// C4742 expected
extern struct X {
   int a;
} global;

int main() {
   global.a = 0;
}