次の方法で共有


C6246

更新 : 2007 年 11 月

警告 C6246: <変数> のローカル宣言は、外部スコープの同じ名前の宣言を表示しません。追加情報: <場所> の以前の宣言を参照してください

この警告は、ローカル スコープで同じ名前を持つ 2 つの宣言があることを示します。外部スコープでの名前は、内部スコープでの宣言により非表示になっています。どのような目的で外部スコープの宣言を使用しても、ローカル宣言が使用されます。

使用例

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

#include <stdlib.h>
#define UPPER_LIMIT 256
int DoSomething( );

int f( )
{
  int i = DoSomething( );
  if (i > UPPER_LIMIT)
  {
    int i;
    i = rand( );
  }
  return i;
}

この警告を解決するには、次のコードに示すように別の変数名を使用します。

#include <stdlib.h>
#define UPPER_LIMIT 256
int DoSomething( );

int f ( )
{
  int i = DoSomething( );
  if (i > UPPER_LIMIT)
  {
    int j = rand( );
    return j;
  }
  else
  {
    return i;
  }
}

この警告では、スコープの重複のみが識別されます。