6-3 사용자 정의 함수
C 프로그램에서의 함수
: main()함수 안에 표준함수를 사용하는 형태
: 그러나 동일 블록 내의 프로그램 길이가 길어지면 전체 프로그램은 복잡해지고 이해하기가 어려워진다.
: 따라서 전체 프로그램을 짧은 길이의 단위 프로그램으로 나누어 정의함으로써 프로그램의 작성과 이해를 쉽게 할 필요가 있다.
사용자 정의 함수
: 사용자가 단위 프로그램을 함수로 정의하여 사용
-함수 정의의 구조
ex)
*반환 자료형
: 함수에서 계산된 결과값을 호출한 함수에 되돌려 줄 때의 자료형
: 사용될 수 있는 자료형은 C언어에서 사용 가능한 모든 자료형
: 생략이 가능하며, 생략할 경우 자료형은 int형으로 간주
: 반환값이 없는 함수인 경우는 void형으로 선언
*함수명
: 변수명을 정하는 규칙과 동일한 방식으로 함수명을 정한다.
: 의미 있는 함수명을 정하는 것이 함수를 이해하는데 도움을 준다.
*자료형과 매개변수
: 자료형은 매개변수의 자료형을 나타냄
: 매개변수는 호출 함수와 피호출 함수 사이에 자료를 주고받기 위해 사용
: 매개변수는 해당 함수 내에서 변수처럼 사용
: 매개변수가 여러 개일 경우에는 콤마로 구분
: 매개변수가 없으면 void형으로 사용
*함수 몸체
: 함수가 하는 일을 정의하는 부분
: 중괄호{}를 이용하여 함수의 시작과 끝을 나타냄
: C언어의 기본구조와 동일
main()함수의 예1)
// 반환자료형이 있는 경우 return값 명시
main()함수의 예2)
// 반환자료형이 void인 경우 return값 생략
-> 반환 자료형에서 void는 반드시 명시(생략시 int로 처리)
-> 매개변수 (void)와 ()는 동일한 의미
사용자 정의함수의 예)
// return 값 d는 sum 함수를 호출한 함수로 반환
함수의 사용
: 함수를 사용하기 위해서는 1. 함수의 원형 선언, 2. 함수의 호출, 3. 함수의 정의로 구성된다.
함수의 원형 선언
: 함수는 변수와 같이 사용되기 전에 미리 선언
: 함수의 원형선언은 일반적으로 main()함수 이전에 한다.
: 원형선언은 함수정의 부분의 헤더부분에 세미콜론만 추가하면 된다.
-함수 원형선언은 함수와 관련된 3가지 성질을 선언
: 함수의 반환형
: 매개변수의 개수
: 매개변수의 자료형
ex-원형선언이 필요한 경우)
// 피호출 함수가 main()함수 뒤에 선언된 경우 함수의 원형 선언이 필요
출력 : sum=30
ex-원형선언이 필요 없는 경우)
// 피호출 함수가 main()함수 이전에 선언된 경우로서 함수의 원형 선언이 필요 없다.
출력 : sum=30
함수의 호출
: 함수는 일종의 부 프로그램. 따라서 함수의 호출이 있어야 함.
-함수의 호출 방법
: 함수명과 매개변수의 열거
-함수의 호출과 프로그램 실행 순서
*매개변수
-실 매개변수
: 함수를 호출하는 함수(호출함수)에 쓰이는 매개변수
-형식 매개변수
: 호출당하는 함수(피 호출함수)에 쓰이는 매개변수
-> 실 매개변수와 형식 매개변수 사이에는 자료형과 변수의 개수가 일치해 한다.
매개변수의 예)
// 호출함수로서 a, b, c는 실매개변수
// 피호출함수로서 x, y, z는 형식매개변수
-> 자료형이 일치하지 않을 경우는 형 변환이 발생
-> 변수의 개수가 일치하지 않을 경우 컴파일 에러가 발생
*결과값 반환(return문)
ex)
return(x>y ? x:y); // 최댓값 반환
return y; // 최솟값 반환
출력)
ex2)
s=sum(30,40); // 함수 호출결과를 변수에 반환
sum(100,200); // 호출결과를 직접 사용
출력)