<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. These rules are based on the structure of the program. For example, if you have a loop that is executed a large number of times, the compiler might decide to put the loop body in a function so that the compiler can optimize the loop.