At a high level, I understand we use #include statements to make code from other files available to the current file. But I don't understand why we include a header file, which contains declarations but no definitions.
Maybe I need to learn more about the compilation/linking process to fully understand the mechanics, but is there a high level concept I'm failing to grasp at the outset?
Edit: All the answers helped clarify my question, which boils down to: once we've notified the compiler that a function is defined elsewhere, how does it figure out where to find that definition?
printf()are declared in<stdio.h>and the compiler links the C library automatically so that the definition ofprintf()is found. For your code, you either list the object files on the command line, or put them in a library and link that.