<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. For example, the compiler knows that it should call a function when the arguments are passed by value. In contrast, it knows that it should define a function when the arguments are passed by reference.