글쎄, 당신은 범위 규칙에 대해 알아야 합니다 - {... }사용한 "범위"의 개념 이해

지역 변수

샘플 코드에서 생성된 출력을 관찰합니다. 주요 차이점이 명확해야 합니다. 이들은 모두 {...} 범위 내의 "로컬" 변수입니다.

int main( ) {
int X = 10, Y = 15;
{
  정수 X = 20;
   {
     int X = 30, Y = 35;
     Brain.Screen.printAt(4,30, "세 번째 것: %d, %d ", X, Y); 
   }
  	 Brain.Screen.printAt(4, 60, "두 번째 것: %d, %d", X, Y); 
	}
	Brain.Screen.printAt(4, 90, "첫 번째 것: %d, %d", X, Y);	
	0을 반환합니다.
}

산출:

세 번째 것: 30, 35 
두 번째 것: 20, 15 
첫 번째 것: 10, 15

위의 예는 빠르고 쉽게 설명하기 위해 사용되었습니다. 중첩된 범위 내에서 동일한 수직 변수를 사용하지 마십시오.

“main( )” 블록 외부에 변수를 넣는 것은 어떻습니까?

전역 변수

변수를 main( ) 블록 외부에 배치하고 다른 함수 내에 배치하지 않으면 프로젝트의 모든 함수에서 전역적으로 변수를 사용할 수 있게 됩니다. 이를 전역 변수라고 합니다.

int gValue = 90000; // 이는 다른 모든 범위에 전역적입니다
  
int main() {

  Brain.Screen.setFont(fontType::mono30);
  정수 X = 10;
  {
      int X = 20, gValue = 8000;
      {
         int X = 30, gValue= 700;
         Brain.Screen.printAt(4, 30, " 세 번째 것: %d ", gValue + X); 
      }
      Brain.Screen.printAt(4, 60, " 두 번째 것: %d ", gValue + X); 
   }
   Brain.Screen.printAt(4, 90, " 첫 번째 것: %d ", gValue + X);
}

산출:

세 번째 것: 730
두 번째 것: 8020 
첫 번째 것: 90010

가장 좋은 방법은 전역 변수와 지역 변수 모두에 동일한 식별자 이름을 사용하지 않는 것입니다.

주의: 내가 "파일"이 아니라 "프로젝트"라고 언급했다는 점에 유의하십시오. 프로젝트는 두 개 이상의 파일로 구성될 수 있습니다. 그러나 단일 프로젝트 내에서는 main( ) 함수를 두 개 이상 가질 수 없습니다. 이는 이 기사의 범위를 벗어납니다. 전역 변수와 관련하여 "extern"을 사용하는 것과 같은 몇 가지 추가 규칙이 있습니다. 이에 대해서는 VEX Library내의 단일 프로젝트 내의 여러 파일에 관한 다른 섹션에서 자세히 설명합니다.


"네임스페이스 vex"란 무엇입니까?

네임스페이스는 변수가 아니기 때문에 그 자체로 "로컬" 변수와 "전역" 변수에 대한 논의에 반드시 포함되는 것은 아닙니다. 그러나 "namespace vex"는 에 자체 범위포함합니다. 이는 모든 V5 프로그램에 포함해야 하는 템플릿 코드 베이스의 일부이므로 이 기사에서는 네임스페이스에 대한 범위 규칙을 간략하게 다루어야 합니다.

각 네임스페이스는 해당 개별 "공간"과 관련된 일련의 변수, 함수를 생성할 수 있는 공간과 같습니다. 이 "공간" 내에 정의된 사용 가능한 모든 변수, 함수, 클래스 등에 액세스할 수 있습니다.

https://api.vexcode.cloud/v5/html/ 에서 온라인네임스페이스를 찾아볼 수 있습니다. 빠른 조회를 위해 "vex"를 마우스 오른쪽 버튼으로 클릭한 다음 "정의로 이동"을 클릭할 수도 있습니다. “vex” 네임스페이스에서 사용할 수 있는 내용에 대한 풍부한 정보를 찾을 수 있습니다.

코드니펫5.png

다음을 수행하여 이들 중 하나에 액세스할 수 있습니다: vex::

예를 들어 템플릿 코드를 다시 참조하세요.

네임스페이스 vex 사용;
vex::뇌뇌;

또한 이 "vex" 공간 내에 선언된 변수, 함수 등을 포함한 모든 이름은 프로그램의 다른 "공간"과 충돌하지 않습니다.

예를 들어 "myOwnNamespace"를 만들고 변수 제목을 "Brain"으로 지정할 수 있습니다. 그러한 작업을 수행하는 것은 권장되지 않지만 프로그램에서는 이를 허용합니다. 이는 "myOwnNamespace" 내에 정의되어 있기 때문입니다.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: