Поделиться через


Предупреждение компилятора (уровень 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;
}