Udostępnij za pośrednictwem


/Zc:forScope (Wymuszaj zgodność w zakresie pętli For)

Używany w celu zaimplementowania standard C++ zachowanie dla pętle z rozszerzeniami Microsoft (/Ze).Domyślnie opcja /Zc:forScope jest włączona.

/Zc:forScope[-]

Uwagi

Standardowe zachowanie jest pozwolić for inicjatora pętli Przejdź poza zakresem po for pętli.W obszarze /Za, /Ze (Wyłącz rozszerzenia językowe), for inicjatora pętli pozostaje w zakresie do czasu zakończenia lokalnego zakresie.

Poniższy kod zostanie skompilowany w obszarze /Ze , ale nie w /Za:

// zc_forScope.cpp
// compile with: /Zc:forScope- /Za
// C2065 expected
int main() {
   // Uncomment the following line to resolve.
   // int i;
   for (int i =0; i < 1; i++)
      ;
   i = 20;   // i has already gone out of scope under /Za
}

Jeśli użyjesz /Zc:forScope-, otrzymasz ostrzeżenie (domyślnie wyłączone), gdy zmienna w zakresie z powodu deklaracji, który został utworzony w poprzedniej zakresu.Aby zademonstrować to, należy usunąć // znaków w kodzie powyżej do deklarowania int i.

Można zmodyfikować zachowanie wykonywania /Zc:forScope z conform dyrektywę pragma.

Jeśli użyjesz /Zc:forScope- w projekcie z istniejącym plikiem .pch, /Zc:forScope- jest ignorowany, (ostrzeżenie) i kompilacji z istniejących plików .pch.Nowy plik .pch wygenerowane, należy użyć /Yc (Utwórz prekompilowany plik nagłówka).

Aby uzyskać więcej informacji na temat problemów ze zgodnością w Visual C++, zobacz Niestandardowe zachowanie.

Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio

  1. Otwórz okno dialogowe projektu Strony właściwości.Szczegółowe informacje – zobacz: Praca z właściwościami projektu.

  2. Kliknij folder C/C++.

  3. Kliknij przycisk języka stronę właściwości.

  4. Modyfikuj życie zgodności dla zakresu pętli właściwości.

Aby programowo ustawić tę opcję kompilatora

Zobacz też

Informacje

/Zc (Zgodność)

/Za, /Ze (Wyłącz rozszerzenia językowe)