더북(TheBook)

여기서 다음과 같이 매개변수 이름을 생략하거나 스토리지 지정자(storage specifier)extern1을 붙여도 된다.

extern bool leapyear(unsigned);

선언문은 반드시 컴파일러에게 인수 타입과 리턴 타입을 알려 주도록 작성해야 한다. 이 함수의 프로토타입도 unsigned 타입을 받아서 bool 타입을 리턴한다고 명시했다.

void 키워드 사용과 관련해서 다음과 같은 특별한 두 관례가 있다.

매개변수 없이 함수를 호출한다면 매개변수 목록 자리에 void를 적는다. 이 책의 첫 번째 예제인 예제 1-1에 나온 main처럼 말이다.

함수에 리턴 값이 없다면 리턴 타입을 void로 지정한다. 가령 앞에서 본 swap_double이 그랬다.

이렇게 프로토타입을 적어 주면 컴파일러가 그 함수의 호출문을 처리하는 데 도움된다. 호출문에서 함수가 받을 매개변수에 대한 정보를 알 수 있기 때문이다. 예를 들어 다음 코드를 보자.

extern double fbar(double);
...
double fbar2 = fbar(2)/2;

 

 


1 extern 키워드에 대해서는 13.2절에서 자세히 설명한다.

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