The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
기능 정의
이제 몇 가지 샘플을 살펴보았으므로 함수 정의의 일반적인 형식을 살펴보겠습니다.
void function-name() {
변수 선언 등
표현식...
//명시적인 반환이 필요하지 않습니다.
}
함수는 특별한 값이나 들어오는 매개변수를 반환하지 않습니다.
void function-name(data-type 변수) {
변수 선언 등
표현식...
//명시적인 반환이 필요하지 않습니다.
}
여러 변수를 원할 경우 ","를 구분 기호로 사용하면 됩니다.
함수는 특별한 값을 반환하지 않지만 하나의 매개변수를 사용하여 반환합니다.
void 함수명(데이터형 변수, 데이터형 변수 등) {
변수 선언 등
표현식...
//명시적인 반환이 필요하지 않습니다.
}
함수는 특별한 값을 반환하지 않지만 둘 이상의 매개변수를 사용하여 반환합니다.
void 함수명(데이터형 변수, 데이터형 변수 등) {
변수 선언 등
표현식...
반환 값
}
함수는 특정 데이터 유형의 값을 반환하고 하나 이상의 매개변수를 입력합니다.
함수의return유형은 함수가 반환하는 반환 값의 데이터 유형과 동일해야 합니다. 반환 값는 상수 값이거나 변수일 수 있습니다. 이 키워드 앞에는 "return"이라는 키워드가 와야 합니다."
반환 유형은 다음 규칙에 따라 결정됩니다.
- 배열을 제외하고 반환 유형에 대한 제한은 거의 없습니다. (배열은 데이터 생성 방법에 관한 또 다른 고급 주제입니다. 이는 이 기사의 범위를 벗어나므로 여기서 다루지 않습니다.
- 반환 유형을 "void"로 지정하면 반환 값이 필요하지 않음을 의미합니다. "반품"이라는 문구가 암시되어 있습니다. 이는 "void" 함수 끝에 "return"을 명시적으로 명시해야 함을 의미합니다.
main() 이전 또는 이후에 함수를 작성하시겠습니까?
컴파일러는 파일을 위에서 아래로 읽습니다. 따라서 순서가 중요합니다.
간단한 GCD(최대 공통 분모) 함수를 예로 들어 보겠습니다. 오류가 발생합니다:선언되지 않은 식별자 'getGCD' 사용
실제로 이것은 main( )에서 왔든 다른 호출 함수 블록에서 왔든 마찬가지입니다. 즉, “호출된 함수 블록”은 “호출하는 함수 블록”보다 앞에 와야 합니다.
두 가지 가능한 솔루션:
int getGCD(int a, int b) {
int 나머지 = 1;
while (나머지 > 0) {
나머지 = a % b;
=b;
= 나머지;
}
반환 a;
}
int main() {
Brain.Screen.printAt(5,60, “GCD ( %d, %d ) = %d”, getGCD(60, 100) );
}
예제 "main()"에서 "호출되는 함수"를 "호출하는 함수 블록" 위로 이동합니다.
int getGCD(int, int);
int main() {
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
int getGCD(int a, int b) {
int 나머지 = 1;
while (나머지 > 0) {
나머지 = a % b;
=b;
= 나머지;
}
반환 a;
}
함수의 프로토타입(시그니처라고도 함)을 "호출 함수 블록" 앞에 놓습니다.
다른 파일의 기능을 모듈화하려면 어떻게 해야 합니까?
1단계: 헤더 파일을 만들고 함수의 프로토타입을 이 파일에 넣습니다.
예를 들어 "myFuncs.h"라는 파일을 만듭니다.
코드를 컴파일하기 전에 이 헤더 파일을 프로젝트에 "추가"해야 합니다. 이를 통해 VEXcode Pro V5 IDE는 프로젝트 빌드를 시작하기 전에 이 새 헤더 파일의 포함을 "인식"할 수 있습니다.
방법은 다음과 같습니다.



이 헤더 파일 "common.h"에서 (공백 없이 영숫자만 사용한다면 원하는 대로 이름을 지정할 수 있습니다.)
2단계: common.cpp라는 별도의 cpp 파일을 만듭니다.

//이것은 common.cpp 파일입니다.
int getGCD(int a, int b) {
int 나머지 = 1;
while (나머지 > 0) {
나머지 = a % b;
=b;
= 나머지;
}
반환 a;
}
getGCD(...) 함수를 이 파일로 이동하세요.
#include "vex.h"
#include "common.h"
네임스페이스 vex를 사용;
int main() {
vexcodeInit();
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
이제 기본 cpp 파일에 있는 모든 내용은 다음과 같이 구성됩니다.
참조:https://api.vexcode.cloud/v5/html/namespacevex.html
향후 주제는 향후 VEX 라이브러리의 고급 섹션에서 다루어질 것입니다.
- 값으로 전달 vs. 참조로 전달
- 배열로 전달
- 구조에 전달