コンパイラの警告 (レベル 1) C4744
'var' の型が 'file1' と 'file2' で異なります: 'type1' と 'type2'
2 つのファイルで参照または定義されている外部変数の型が、それらのファイル内で異なっています。 解決するには、型定義を同じにするか、どちらかのファイルで変数名を変更します。
C4744 は、/GL を指定してファイルをコンパイルした場合にのみ発生します。 詳細については、「/GL (プログラム全体の最適化)」を参照してください。
Note
C++ では変数名が型情報で装飾されるため、C4744 は通常、(C++ ではなく) C ファイルで発生します。 サンプル (以下) が C++ としてコンパイルされると、リンカー エラー LNK2019が発生します。
例
この例には、最初の定義が含まれています。
// C4744.c
// compile with: /c /GL
int global;
次の例では C4744 が生成されます。
// C4744b.c
// compile with: C4744.c /GL /W1
// C4744 expected
#include <stdio.h>
extern unsigned global;
main()
{
printf_s("%d\n", global);
}