함수에 특정 정보를 제공하고 싶을 때가 있을 것입니다. 이를 통해 함수는 호출될 때마다 수신된 정보를 기반으로 그에 따라 작업을 수행할 수 있습니다. 다음 샘플은 작동 방식을 보여줍니다.
샘플: 매개변수를 사용하여 웃는 얼굴을 그리는 프로그램
다음 예에서는 올바르게 사용되는 전역 변수의 예도 보여줍니다.
사용자 정의 함수를 사용하지 않고:
int MaxX = 484, MaxY = 278; int main() { vexcodeInit(); int centerX = MaxX/2, centerY = MaxY/2; //얼굴 Brain.Screen.drawCircle(centerX, centerY, 100); //왼쪽 눈 int space = 20; /*이것은 화면 상단을 기준으로 눈의 간격을 제공합니다. 원하는 대로 조정할 수 있습니다.*/ centerX = MaxX/2+space; centerY = MaxY/2-30; Brain.Screen.drawCircle(centerX, centerY, 20); //오른쪽 눈 /*...여기서 오른쪽 눈에 대한 코드를 계속 수행할 수 있습니다*/ //웃는 입에 대한 코드를 계속 수행할 수 있습니다 /*...여기서 웃는 입에 대한 코드를 계속 수행할 수 있습니다 ... etc. 다른 크기를 그리려면 전체 코드 세트를 다시 반복해야 합니다. */ }
사용자 정의 함수의 경우:
int MaxX = 484, MaxY = 278; const char 왼쪽=1, 오른쪽=2; void drawFace(int size){ /*...호출자 기능의 크기 매개변수를 기반으로 한 얼굴에 대한 코드.*/ } //side == 왼쪽 또는 오른쪽 void drawEye(char side){ /*...호출자 기능의 크기 매개변수를 기반으로 눈에 대한 코드.*/ } //side == Left 또는 Right void drawMouth(bool smile, int size){ /*...code 호출자의 크기 매개변수를 기반으로 입의 경우. 여기에는 웃는지 찡그린지 여부와 너비가 포함됩니다.*/ } int main() { vexcodeInit(); 그리기페이스(); drawEye(왼쪽); drawEye(오른쪽); //이것으로 정말 재미있을 것 같아요... while (true){ drawMouth(true, 30); 대기(1000, msec); drawMouth(false, 30); 대기(1000, msec); } }
다음은 호출자 함수 main()의 논리 흐름 순서를 보여줍니다.