分享方式:


編譯器警告 (層級 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);
}