반응형
SMALL

학습목표

함수의 선언, 정의, 호출, 자료 전달 방법에 대해 이해할 수 있따.

표준함수에 대한 헤더 파일을 사용할 수 있다.

 

 

주요 용어

함수, 표준함수, 사용자 정의 함수, 함수 호출, 매개변수, return, 

 

5.3 사용자 정의함수

C 언어에서는 사용자가 단위 프로그램을 함수로 정의하여 사용할 수 있도록 하고 있다.

 

5.3.1 함수의 정의

반환 자료형 함수형 (자료형 매개변수1, 자료형 매개 변수 2,.....) >>> 함수 헤더
{                                                                                >>> 함수 시작
               함수 몸체
}                                                                                 >>> 함수 끝

(1) 함수 헤더

1) 반환 자료형 return type

- 함수에서 계산된 결과값을 호출한 함수에 되돌려 줄 때의 자료형

- 사용될 수 있는 자료형은 C 언어에서 사용 가능한 모든 자료형

- 생략이 가능하며, 생략할 경우 자료형은 int형으로 간주

- 반환값이 없는 함수인 경우는 void형으로 선언

 

2) 함수명

- 함수를 구별하기 위해 변수명을 정하는 규칙과 동일한 방식으로 함수명을 정함

- 가능하면 의미 있는 함수명을 정하는 것이 함수를 이해하는 데 도움이 됨

 

3) 자료형과 매개변수

- 자료형은 매개변수의 자료형을 나타냄

- 매개변수는 호출함수와 피호출함수 사이에 자료를 주고받기 위해 사용(즉, 매개변수는 함수가 입력을 받아 처리할 데이터를 의미)

- 매개변수는 해당 함수 내에서 변수처럼 사용

- 매개변수가 여러 개일 경우에는 콤마(,)로 구분

- 매개변수가 없으면 void형으로 사용

 

(2) 함수 몸체

함수가 하는 일을 정의하는 부분으로 중괄호 { } 로 함수의 시작과 끝을 나타내며, 함수가 실행될 때 필요한 지역변수에 대한 선언과 실행 문장이 쓰여진다.

 

1) main() 함수의 정의 예

반환자료형  함수명 (매개변수 )
ex ) int   main (void )
      void main()
- 반환 자료형에서 void는 반드시 명시 (생략시 int 로 처리)
- 매개변수 (void) 와 ( ) 는 동일한 의미

2) 사용자 함수의 정의

             int sum (int a, int b )   // int : 결과값을 되돌려 줄 때의 자료형 
            {  // sum : 함수명   // (괄호안 ) int : 매개 변수의 자료형 // a, b 매개 변수
                    int d;       // 함수 내에서 새로 사용되는 변수 선언
                    d = a + b; 
                    return(d);  // 값을 되돌려 줄 때 사용  }

 

 

5.3.2 함수의 사용 

함수를 사용할 때에는 함수의 원형 (prototype) 선언, 함수의 호출, 함수의 정의로 구성되어야 하며,

이들의 위치는 다음과 같다.

 

 

함수의 원형 선언

 


함수의 호출

 

 

 

 

 

 

5.3.3 함수의 원형 선언

- 함수는 변수와 같이 사용되기 전에 미리 선언

- 함수의 원형선언은 일반적으로 main()함수 이전에 한다.

- 원형선언은 함수정의 부분의 헤더부분에 세미콜록 ( ; )  만 추가하면 된다.

- 함수 원형선언은 함수와 관련된 3자리 성질을 선언

   함수의 반환형

   매개변수의 개수

   매개변수의 자료형

 

#include <stdio.h>
int sum(int a, int b);
void main(){
printf("sum=%d", sum(10, 20));
}
int sum(int a, int b){
// 피호출함수가 main() 함수 뒤에 정의됨 
return(a+b);
}  >> 결과 :  sum =  30

 

 

반응형
LIST

+ Recent posts