クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2005
Visual Studio ドキュメント
Visual C++
C/C++ プログラムのビルド
C/C++ ビルド エラー
 コンパイラの警告 (レベル 1) C4743
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2005/.NET Framework 2.0

その他のバージョンについては、以下の情報を参照してください。
Visual C++ の概念 : C/C++ プログラムのビルド
コンパイラの警告 (レベル 1) C4743

'type' は 'file1' および 'file2' 内で異なるサイズを含んでいます: number および number バイト

2 つのファイルで参照または定義された 1 つの外部変数の型が、これらのファイルの間で異なっています。また、file1 の変数と file2 の変数のサイズが異なっていることも確認されました。

この警告が C++ に対して出された場合は、次の点が重要になります。2 つのファイルに同じタイプを同じ名前で宣言した場合、これらの宣言に仮想関数が含まれている場合、および宣言が異なる場合は、仮想関数テーブルに関して C4744 警告が出されます。この警告が出されるのは、同じ型に対してサイズの異なる仮想関数テーブルが 2 つあるので、リンカはどちらか 1 つを選択して実行可能ファイルに結合する必要があるからです。この結果、プログラムが間違った仮想関数を呼び出すことがあります。

この警告を解決するには、同じ型定義を使用するか、異なる型名または変数名を指定します。

使用例

次の例では、1 つの型定義を使用します。

// C4743a.cpp
// compile with: /c
class C {
public:
    virtual void f1(void);
    virtual void f2(void);
    virtual void f3(void);
};

void C::f1(void) {}
void C::f2(void) {}
void C::f3(void) {}
C q;

次の例では C4743 エラーが生成されます。

// C4743b.cpp
// compile with: C4743a.cpp /W1 /GL /O2
// C4743 expected
class C {
public:
    virtual void f1(void);
    virtual void f2(void);
    virtual void f3(void);
    virtual void f4(void);
    virtual void f5(void);
};

void C::f4(void) {}
void C::f5(void) {}
C x;

int main() {} 
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2012 Microsoft. All rights reserved. 使用条件 | 商標 | プライバシー
Page view tracker