[차례]  [함수색인] Wel 도움말 문서 [이전]  [다음]
대분류: Wel의 문법(Grammar)
소분류: 사용자 정의 함수
사용자 정의 함수 작성일: 2000/08/28
수정일: 2002/07/05

1) 사용자 정의 함수란? 사용자 정의 함수(Function)는 사용자가 필요에 의하여 직접 함수를 정의하 여 사용하는 것을 의미하며 내장 함수처럼 인자를 전달할 수 있고 함수의 결과 값을 되돌려 받을 수 있으며 함수 내부에서 사용되는 변수로 인하여 함수 외부 에서 사용되는 변수에 영향을 주지 않을 수도 있다. 2) 사용자 정의 함수의 선언 형식) function [형선언문] 함수명([형선언문] 인자1, ... , [형선언문] 인자N) { 문장1; . . 문장N; [return 연산식]; } -. [ ] 안의 내용은 생략 가능함을 의미한다. -. 형선언문: 함수의 인자나 결과값에 대한 자료형 선언문으로 생략시 free형 으로 지정된다. -. 함수명: 변수명 작성 규칙과 같은 방법의 명칭을 사용해야하며 내장 함수나 명령어와 동일한 명칭은 사용할 수 없다. -. 인자1 부터 인자N까지의 인자는 변수명이어야 하며 함수안에서만 통용되는 지역 변수이다. 3) 사용자 정의 함수 내에서의 변수 사용 a. 선언하지 않고 변수를 사용할 경우 사용자 정의 함수를 호출하기 전에 해당 변수를 주 프로그램(Main program) 에서 이미 선언 하였거나 또는 선언 없이 변수를 사용하였을 경우에는 전체 프로그램에서 통용이 되는 전역 변수가 된다. 호출전에 해당 변수를 선언하지 않았고 또한 사용하지 않았으며 사용자 정 의 함수 내에서 최초로 사용할 경우에는 그 함수 내에서 통용이 되는 지역 변수이며 함수가 실행될 때 생성이 되고 함수가 종료되면 사라지게 된다. ※ 사용자 정의 함수 내에서 변수를 선언 하지 않고 사용할 경우에는 전역 변수 또는 지역 변수가 될 수 있기 때문에 함수를 호출하기 전에 해당 변수의 상황을 알고 있어야 한다. b. 형 선언문으로 선언후 변수를 사용할 경우 사용자 정의 함수 내에서만 통용이 되는 지역 변수로써 함수가 실행될 때 해당 변수가 생성(확보)되고 함수가 종료되면 사라지게 된다. c. static 으로 선언후 변수를 사용할 경우 사용자 정의 함수 내에서만 통용이 되는 지역 변수로써 함수를 정의할 때 변수가 생성(확보)되며 실행시 해당 변수를 확보하거나 초기화 하지 않는다. 이와 같은 변수는 항상 그 값을 유지하며 함수 외부에서 참조할 수 없다. d. global 로 참조 지정 후 변수를 사용할 경우 해당 변수가 전역 변수로 참조 지정되어 함수 내의 변수가 아니라 함수 외부의 주 프로그램(Main program) 상의 변수가 된다. 3) 사용자 정의 함수의 회귀 값(Return value) a. return 문을 사용할 경우 함수의 형(function 다음의 형 선언문)과 다르면 형 변환하여 그 값을 되돌리며, 함수의 형이 생략되었을 경우에는 free 형이 되어 형 변환을 하지 않는다. b. return 문을 사용하지 않을 경우 최후에 사용된 문장의 상수값을 되돌린다. 이 경우 되돌려지는 값이 무엇인지 명확하지 않을 수 있기 때문에 함수의 결과값을 변수에 대입할 경우 주의를 해야한다. 4) 사용자 정의 함수의 예#1 function int add(int a, int b) { int c; // 인자 a,b 및 변수 c는 지역변수임 c= a + b; return c; // a+b의 결과를 되돌림 } ad= add(3,2); // 3을 a에 2를 b에 전달하여 함수를 실행한 후 결과 5를 print(ad); // ad변수에 대입한 후 출력함 5) 사용자 정의 함수의 예#2 function int add() { global a; // 전역변수 a를 참조하도록 지정함 c= a + b; // 변수 b는 선언되지 않아서 전역변수를 참조함 return c; // 변수 c는 호출전에 선언 또는 사용하지 않아 } // 함수내에서 통용되는 지역변수로 확보됨 a= 3; // 전역 변수 a에 3을 대입함 b= 2; // 전역 변수 b에 2를 대입함 ad= add(); //함수를 실행한 후 결과 5를 ad변수에 대입한다. print(ad); // ad변수의 값을 출력함 6) 사용자 정의 함수의 예#3 function int count() { static int cnt= 0; // 내부 정적변수로 cnt에 0을 대입하는 // 초기화는 최초에 1회만 한다. cnt= cnt + 1; return cnt; } a= count(); // 함수를 실행하여 1을 a에 기억함 b= count(); // 함수를 실행하여 2를 b에 기억함 print(a, " ", b, "\n");

Wel Version 1.0
[차례]  [함수색인] [이전]  [다음]