음, 범위 규칙에 대해 알아야 합니다 - {... }으로 "범위"의 개념 이해

지역 변수

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

int main() {
int X = 10, Y = 15;
{
  int 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( ) 블록 외부에 배치하지만 다른 함수 내부에는 배치하지 않으면 모든 함수에서 전역적으로 변수를 사용할 수 있습니다. 프로젝트에서. 이를 전역 변수라고 합니다.

정수 값 = 90000; // 이것은 다른 모든 범위에 대해 전역적입니다.
  
int main() {

  Brain.Screen.setFont(fontType::mono30);
  int 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 ", g값 + X); 
   }
   Brain.Screen.printAt(4, 90, " 첫 번째 것: %d ", g값 + X);
}

산출:

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

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

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


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

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

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

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

codesnippet5.png

다음을 수행하여 액세스할 수 있습니다. vex::

예를 들어 템플릿 코드를 다시 참조하십시오.

네임스페이스 벡스 사용
vex::brain 두뇌;

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

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

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