共用方式為


/Zc:forScope (強制 for 迴圈範圍中的一致性)

用來搭配 Microsoft 擴充功能 (/Ze) 實作 for 迴圈的標準 C++ 行為。 /Zc:forScope 依預設為開啟。

/Zc:forScope[-]

備註

標準行為是讓 for 迴圈的初始設定式在 for 迴圈之後時超出範圍。 在 /Za、/Ze (停用語言擴充功能) 下,for 迴圈的初始設定式維持在範圍內,直到本機範圍結束為止。

下列程式碼將在 /Ze 底下編譯,而不會在 /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
}

如果您使用 /Zc:forScope-,當變數因為前一個範圍中所做的宣告而在範圍內時,您將會收到警告 (依預設為關閉)。 為了示範這點,請將上述程式碼中的 // 字元移除,以宣告 int i。

您可以用 conform pragma 修改 /Zc:forScope 的執行階段行為。

如果在具有現有 .pch 檔的專案中使用 /Zc:forScope-,會忽略 /Zc:forScope- (有警告),且編譯會使用現有的 .pch 檔案繼續。 如果您想要產生新的 .pch 檔案,請使用 /Yc (建立先行編譯標頭檔)

如需 Visual C++ 一致性問題的詳細資訊,請參閱非標準行為

在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資訊,請參閱 使用專案屬性

  2. 按一下 [C/C++] 資料夾。

  3. 按一下 [語言] 屬性頁。

  4. 修改 [強制在 For 迴圈範圍中一致] 屬性。

若要以程式方式設定這個編譯器選項

請參閱

參考

/Zc (一致性)

/Za、/Ze (停用語言擴充功能)