Bagikan melalui


Peringatan C6246

Deklarasi lokal 'variabel' menyembunyikan deklarasi dengan nama yang sama dalam cakupan luar. Informasi Tambahan: Lihat deklarasi sebelumnya di 'lokasi'.

Keterangan

Peringatan ini menunjukkan bahwa dua deklarasi memiliki nama yang sama pada cakupan lokal. Nama pada cakupan luar disembunyikan oleh deklarasi di lingkup dalam. Setiap penggunaan deklarasi cakupan luar yang dimaksudkan akan menghasilkan penggunaan deklarasi lokal.

Nama analisis kode: LOCALDECLHIDESLOCAL

Contoh

Kode berikut menghasilkan peringatan ini:

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

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

Untuk memperbaiki peringatan ini, gunakan nama variabel lain seperti yang ditunjukkan dalam kode berikut:

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

Peringatan ini hanya mengidentifikasi tumpang tindih cakupan.