<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 should call functions only when it needs to do so. This rule is called the "call-by-need" rule.