기능 정의

이제 몇 가지 샘플을 살펴보았으므로 함수 정의의 일반적인 형식을 살펴보겠습니다.

void function-name() {

	변수 선언 등.
	표현식...
	//명시적인 반환은 필요하지 않습니다.
}

함수는 특별한 값이나 들어오는 매개변수를 반환하지 않습니다.

void function-name(data-type variable) {

	변수 선언 등
	표현식...
	//명시적인 반환은 필요하지 않습니다.
}

여러 변수를 원하면 ","를 구분 기호로 사용하기만 하면 됩니다.

함수는 특별한 값을 반환하지 않지만 하나의 매개변수를 사용합니다.

void function-name(데이터형 변수, 데이터형 변수 등) {

	변수 선언 등
	표현식...
	//명시적인 반환은 필요하지 않습니다.
}

함수는 특별한 값을 반환하지 않지만 매개변수가 두 개 이상 있습니다.

void function-name(데이터형 변수, 데이터형 변수 등) {

	변수 선언 등
	표현식...
	반환 값
}

함수는 하나 이상의 매개변수를 입력하여 특정 데이터 유형의 값을 반환합니다.

반환함수 유형은 함수가 반환하는 반환 값의 데이터 유형과 동일해야 합니다. . 반환 값는 상수 값 또는 변수일 수 있습니다. 키워드 "return이 앞에 와야 합니다.

다음 규칙은 반환 유형을 제어합니다.

  • 배열을 제외하고 반환 유형에 대한 제한은 거의 없습니다. (배열은 데이터 생성 방법에 관한 또 다른 고급 주제입니다. 이것은 이 기사의 범위를 벗어나며 여기에서 다루지 않습니다.
  • 반환 유형을 "void"로 지정하면 반환 값이 필요하지 않습니다. "반환" 조항은 암시적입니다. 즉, "void" 함수의 끝에 "return"을 명시적으로 명시해야 합니다.

main() 이전 또는 이후에 함수를 생성하시겠습니까?

컴파일러는 파일을 위에서 아래로 읽습니다. 따라서 순서가 중요합니다.

간단한 최대공약수(GCD) 함수를 예로 들어보겠습니다. 다음 오류가 발생합니다.선언되지 않은 식별자 사용 ' getGCD'

 VEXcode_V5_Text_xi2kumoPkA.png

실제로 이것은 main( ) 또는 다른 호출 펑션 블록에서 왔는지 여부에 관계없이 사실입니다.

두 가지 가능한 솔루션:

int getGCD(int a, int b) {
  int 나머지 = 1;
  동안 (나머지 > 0) {
    나머지 = a % b ;
    a = b;
    b = 나머지;
  }
  return 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) {
  정수 나머지 = 1;
  동안 (나머지 > 0) {
    나머지 = a % b ;
    a = b;
    b = 나머지;
  }
  return a;
}
	

"호출 함수 블록" 앞에 함수의 프로토타입(서명이라고도 함)을 넣습니다.


다른 파일의 기능을 모듈화하려면 어떻게 해야 합니까?

1단계: 헤더 파일을 만들고 함수의 프로토타입을 이 파일에 넣습니다.

예를 들어 "myFuncs.h"라는 파일을 만듭니다.

코드를 컴파일하기 전에 이 헤더 파일을 프로젝트에 "추가"해야 합니다. 이를 통해 VEXcode Pro V5 IDE는 프로젝트 빌드를 시작하기 전에 이 새 헤더 파일의 포함을 "인식"할 수 있습니다.

방법은 다음과 같습니다.

이 헤더 파일 "common.h"에서 (공백 없이 영숫자이면 원하는 이름을 지정할 수 있습니다.)

2단계: common.cpp라는 별도의 cpp 파일 만들기

// 이것은 common.cpp 파일입니다.

int getGCD(int a, int b) {
  int 나머지 = 1;
  동안 (나머지 > 0) {
    나머지 = a % b ;
    a = b;
    b = 나머지;
  }
  return 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

향후 주제는 향후 기술 자료의 고급 섹션에서 다룹니다.

  • 값에 의한 전달과 참조에 의한 전달
  • 배열로 전달
  • 구조체를 통과

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