编译器警告(等级 1)C4744
“var”在“file1”和“file2”中具有不同的类型:“type1”和“type2”
在两个文件中引用或定义的外部变量在这些文件中具有不同的类型。 若要解析,请使类型定义相同,或更改其中一个文件中的变量名称。
仅当使用 /GL 编译文件时才会发出 C4744。 有关详细信息,请参阅 /GL(全程序优化)。
注意
C4744 通常发生在 C(而不是 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);
}