I\'ve perused the possible duplicates, however none of the answers there are sinking in.
tl;dr: How are source and header files related in C? Do
Header files are used to separate the interface declarations which correspond to the implementations in the source files. They're abused in other ways, but this is the common case. This isn't for the compiler, it's for the humans writing the code.
Most compilers don't actually see the two files separately, they are combined by the preprocessor.