My question is about when a function should be referenced with the extern
keyword in C.
I am failing to see when this should be used in practice. As I
Functions actually defined in other source files should only be declared in headers. In this case, you should use extern when declaring the prototype in a header.
Most of the time, your functions will be one of the following (more like a best practice):