Freigeben über


/Zc:forScope (Übereinstimmung in for-Schleifenbereich erzwingen)

Verwendet zum Implementieren von Standard-C++-Verhalten für for-Schleifen mit Microsoft-Erweiterungen(/Ze). Standardmäßig ist /Zc:forScope aktiviert.

/Zc:forScope[-]

Hinweise

Standardverhalten bedeutet, den Initialisierer einer for-Schleife nach der for-Schleife den Gültigkeitsbereich verlassen zu lassen. Unter /Za, /Ze (Spracherweiterungen deaktivieren) bleibt der Initialisierer der for-Schleife im Gültigkeitsbereich, bis der lokale Gültigkeitsbereich endet.

Der folgende Code wird unter /Ze, aber nicht unter /Za kompiliert:

// 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
}

Wenn Sie /Zc:forScope- verwenden, erhalten Sie eine Warnmeldung (standardmäßig deaktiviert), wenn eine Variable aufgrund einer Deklaration, die einem früheren Gültigkeitsbereich erfolgt ist, im Gültigkeitsbereich ist. Zur Demonstration entfernen Sie die Zeichen // in obigem Code, um int i zu deklarieren.

Sie können das Laufzeitverhalten von /Zc:forScope mit dem conform-Pragma ändern.

Wenn Sie /Zc:forScope- in einem Projekt mit einer vorhandenen .pch-Datei verwenden, wird /Zc:forScope- ignoriert (mit einer Warnmeldung), und die Kompilierung wird mit den vorhandenen .pch-Dateien fortgesetzt. Wenn Sie möchten, dass eine neue .pch-Datei generiert wird, verwenden Sie /Yc (Datei der vorkompilierten Header erstellen).

Weitere Informationen über Konformitätsprobleme mit Visual C++ finden Sie unter Nicht dem Standard entsprechendes Verhalten.

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Arbeiten mit Projekteigenschaften.

  2. Klicken Sie auf den Ordner C/C++.

  3. Klicken Sie auf die Eigenschaftenseite Sprache.

  4. Ändern Sie die Eigenschaft Übereinstimmung in einem For-Schleifenbereich erzwingen.

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

Referenz

/Zc (Übereinstimmung)

/Za, /Ze (Spracherweiterungen deaktivieren)