함수의 구조

함수의 전체 구조

1
2
3
4
5
int sum(int a, int b) { // 헤더, 매개변수
    int d;              // 몸체
    d = a + b;          // 몸체
    return d;           // 반환
}
  • 헤더, 몸체, 반환부로 이루어진다.
  • 반환부는 보통 몸체에 포함하기도 한다.

함수 헤더

기초 문법

  • 반환 자료형, 함수명, 매개변수 리스트를 차례대로 작성한다.
1
2
3
4
5
// 문법
ret_type func_name(parm_type param1, ...);

// 예시
int add_function(int a, int b);

반환 자료형

  • 함수의 처리 결과로 반환할 값(return value)의 자료형을 지정한다.
  • 만약 반환하는 값이 없다면 void 키워드를 명시한다.
  • C 언어 초기에는 int 형을 return 하는 게 기본이었으나, C99 부터 void 변환 자료형은 return 을 생략할 수 있따.

함수명

  • 함수를 식별하거나 호출할 때 사용되는 명칭이다.
  • 기본적으로 “의미 있는 함수명”을 사용하는 것을 권장한다.(함수 이해도에 영향)

매개변수

  • 피호출 함수에 자료를 전달하기 위해 선언된 변수
  • 함수 내에서는 지역변수처럼 사용된다.
  • 매개변수가 여러 개일 경우, 콤마(,)로 구분하여 나열한다.
  • 매개변수가 없는 경우, 공란 또는 void로 표기한다.
1
2
3
4
5
// int 형 매개변수 하나, char 형 매개변수 하나
void main(int a, char b);

// 매개변수 없음
void some(void);

함수 몸체

정의

  • 함수의 기능을 수행하는 문장들의 집합
  • 기능을 수행하는 식을, 그리고 수행 결과를 반환하고 호출 지점으로 복귀하는 return 명령문으로 구성된다.

형식

1
2
3
4
5
int sum(int a, int b) {
    int d;          // 지역변수
    d = a + b;      // 기능 수행  
    return d;       // return 반환값  
}
  • 중괄호를 이용해 블록을 구성한다.
  • 함수 안에서 선언된 지역변수는 함수 안에서만 사용할 수 있다.
  • return 명령은 함수를 호출한 곳으로 복귀를 지시하는 키워드이다.
  • void형 함수가 아닌 경우, 반환 자료형의 식을 반환하다.

결과값의 반환

함수 실행의 종료

종류 설명
함수의 마지막 문장 실행 함수의 마지막 문장 실행
return 명령의 실행 함수 실행의 결과값을 반환하고, 함수를 호출한 곳으로 복귀

return 문을 이용한 결과값 반환 형식

1
2
3
4
int main() {
    expression;
    return return_expr_ret;
}

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments