Предупреждение компилятора (уровень 1) C4742
Переменная имеет разное выравнивание в файлах "file1" и "file2": number1 и number2
Внешняя переменная, на которую ссылается или определена в двух файлах, имеет разное выравнивание в этих файлах.
Замечания
Это предупреждение создается, когда компилятор находит, что alignof
переменная в файле1 отличается от alignof
переменной в файле 2. Это может быть вызвано использованием несовместимых типов при объявлении переменной в разных файлах или с помощью несогласования #pragma pack
в разных файлах.
Чтобы устранить это предупреждение, используйте одно и то же определение типа или используйте разные имена для переменных.
Дополнительные сведения см. в разделе pack
и alignof
операторе.
Пример
Это первый файл, определяющий тип.
// C4742a.c
// compile with: /c
struct X {
char x, y, z, w;
} global;
Следующий пример приводит к возникновению ошибки C4742.
// C4742b.c
// compile with: C4742a.c /W1 /GL
// C4742 expected
extern struct X {
int a;
} global;
int main() {
global.a = 0;
}