<human>:  How does the C compiler know when to use a function call and when to use a function definition?
<bot>: The compiler uses a bunch of rules to decide when to call a function and when to define one. The most important rule is that it always prefers to use a function definition when it can. The reason for this is that a function definition is less likely to introduce bugs than a function call. If a function definition is not available, the compiler will fall back to a function call.