/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++의 규칙과 관련된 문제에 대한 자세한 내용은 Compatibility and Compliance Issues in Visual C++를 참조하십시오.

Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 프로젝트 설정 수정를 참조하십시오.

  2. C/C++ 폴더를 클릭합니다.

  3. 언어 속성 페이지를 클릭합니다.

  4. For 루프 범위에서 강제 규칙 속성을 수정합니다.

프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면

참고 항목

참조

/Zc(규칙)

/Za, /Ze(언어 확장 사용 안 함)