더북(TheBook)

7.1 간단한 함수

지금까지 함수를 선언하고(6.1.5절) 정의하는 예(예제 6-3 등)를 여러 차례 봤다. 함수에서 소괄호 ()는 문법적으로 중요한 역할을 한다. 함수 선언과 정의에서 소괄호는 매개변수 목록을 캡슐화하고, 함수를 호출할 때는 구체적인 인수를 담는다. 이러한 역할은 배열의 []와 비슷하다. 배열의 선언과 정의에서 []는 차원의 크기를 표시하고, A[i]처럼 배열에 접근할 때는 특정한 원소를 가리키는 것과 비슷하다.

지금까지 본 함수들은 모두 프로토타입(prototype)C이 있었다. 다시 말해 선언과 정의 코드가 있고, 그 안에 매개변수 타입 리스트와 리턴 타입을 명시했다. 예제 6-3의 leapyear 함수 부분을 다시 보자.

 

yday.c

 5 bool leapyear(unsigned year) {
 6   /* 4로 나눠 떨어지는 해는 윤년이다.
 7      단, 한 세기가 새로 시작할 때 400으로 나눠 떨어지지 않을 때는 그렇지 않다.
 8    */
 9   return !(year % 4) && ((year % 100) || !(year % 400));
10 }

이 함수의 선언문만 보면 다음과 같다.

bool leapyear(unsigned year);
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.