次の方法で共有


C6244

警告 C6244: <変数> のローカル宣言は、<行> (<ファイル>) の以前の宣言を表示しません

この警告は、宣言の名前が外部スコープにある宣言と同じ名前であり、以前の宣言が非表示になることを示します。ローカル スコープの内部から前の宣言を参照できなくなります。どのような目的で前の宣言を使用しても、ローカル宣言を使用することになります。この警告ではスコープの重複のみが識別され、有効期間の重複は識別されません。

使用例

この警告が発生するコード例を次に示します。

#include <stdlib.h>
#pragma warning(push)

// disable warning C4101: unreferenced local variable 
#pragma warning(disable: 4101) 

int i;
void f();
void (*pf)();

void test()
{
    // Hide global int with local function pointer
    void (*i)();  //Warning: 6244

     // Hide global function pointer with an int
    int pf;     //Warning: 6244
}
#pragma warning(pop)

この警告を解決するには、次のサンプル コードを使用します。

#include <stdlib.h>
#pragma warning(push)
// disable warning C4101: unreferenced local variable 
#pragma warning(disable: 4101) 

int g_i;          // modified global variable name
void g_f();       // modified global function name
void (*f_pf)();   // modified global function pointer name

void test()
{
    void (*i)();
    int pf;
}
#pragma warning(pop)

メモリを割り当てる際には、コードを調べて、割り当てが保存された変数と、割り当てを解放した変数が異なるかどうかを判別します。