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