kyuseo의 게임 프로그래밍

Visual C++ 2005 에서 for 루프 범위 강제 규칙 끄기 본문

Kyuseo 소개, 잡담

Visual C++ 2005 에서 for 루프 범위 강제 규칙 끄기

kyuseo 2008. 1. 22. 12:06

개요..


Visual C++ 2005 에서 for 루프 범위가 강제 규칙이 적용되어 for 구문에서 선언한 변수는 루프를 벗어나면 자동으로 소멸되어 더 이상 사용할 수 없습니다.


이와 같은 방법을 사용하지 않는 방법을 설명 드립니다.


(예전에 작성한 코드를 이 방법을 사용하지만 새로 작성할 코드는 새로운 규칙에 따르도록 합시다.)


증상


아래와 같은 코드를 컴파일 하면

d:\zcompany\skyteamproject\망치\map\mapview.cpp(178) : error C2065: 'i' : 선언되지않은식별자입니다.

와 같은 컴파일 오류가 발생합니다.


    for( int i=0; i<TILE_MAX_X; i++ )

    {

        for( int j=0; j<TILE_MAX_Y; j++ )

        {

            MapData[i][j] = 255;

        }

    }


    for( i=0; i<20; i++ ) // error C2065: 'i' : 선언되지않은식별자입니다.

    {

        MoveTile[i].Data = 255;

        SetRect( &MoveTile[i].Rect, 0, 0, 0, 0 );

    }



해결방법


프로젝트 속성 -> C/C++ -> 언어 -> for 루프 범위 강제 규칙을 '아니오' 변경합니다.