共用方式為


C6246

警告 C6246: <variable> 的區域宣告會隱藏外部範圍中相同名稱的宣告。 其他資訊: 請參閱先前的宣告,其位於 <location>。

這個警告表示這兩個宣告在區域範圍 (Local Scope) 上具有相同的名稱。 內部範圍中的宣告會隱藏位於外部範圍中的名稱。 任何故意使用的外部範圍宣告都會導致使用區域宣告。

範例

下列程式碼將產生出這個警告:

#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;
  }
}

這個警告只會識別範圍重疊。