Freigeben über


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

Wird zum Implementieren des standardmäßigen C++-Verhaltens für for-Schleifen mit Microsoft-Erweiterungen (/Ze) verwendet./Zc:forScope ist standardmäßig aktiviert.

/Zc:forScope[-]

Hinweise

Standardmäßig verlässt der Initialisierer einer for-Schleife nach der for-Schleife seinen Gültigkeitsbereich.Unter /Za, /Ze (Spracherweiterungen deaktivieren) bleibt der Initialisierer der for-Schleife gültig, bis die lokale Schleife endet.

Der folgende Code kann unter /Ze, nicht jedoch unter /Za kompiliert werden:

// 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, wird eine (standardmäßig deaktivierte) Warnung angezeigt, wenn eine Variable aufgrund einer Deklaration aus einer vorherigen Schleife gültig ist.Um dies zu veranschaulichen, entfernen Sie die Zeichen // im obigen Code, um int i zu deklarieren.

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

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

Weitere Informationen über Konformitätsprobleme mit Visual C++ finden Sie unter Kompatibilitäts- und Kompatibilitäts-Probleme in Visual C++.

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

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts.Details finden Sie unter Ändern von Projekteinstellungen.

  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)