The solution to the rabbits
dilemma is to use a function
prototype. A function prototype is like a function definition
without parameter names or a body. By supplying a function prototype, you
supply only what the C compiler needs to know about a function's
parameter types and return type in order to prepare calls to the function.
In the function prototype of rabbits
, for example, the parameter
name and the entire body
disappear, leaving only the data-type declarations for the return value and
the parameter:
int rabbits (int);
Because the body of the function is supplied later, a function prototype cannot refer to other functions, be they defined or not yet defined. Other definitions can refer to the function once its function prototype has been seen, however.