I’m making progress but without really understanding the big picture for now.
When you build a C project does it look for the header files first and then find a matching definition in a C file, then linking and compiling based on that?
I did an experiment where I changed the name of the .c file and it worked fine regardless of the name. So is it the header file name that matters the most?
I’m learning as I go so I apologize if I should have read this in a book or manual somewhere. If there is a helpful resource I would appreciate a link to it please. :)
@derickflorian Been a long time since I've worked in C, but if I recall correctly, it processes all of the header files first, using them to build a map of functions and variables and classes that can be invoked (and which external libraries they require).
Then, it compiles the actual code files down into machine-readable binary code.
Then, the linker goes through and actually links that map from the headers with the built code (and any included libraries).
So, yes, the names of the c files don't matter that much. The names of the header files matter, primarily for include purposes.
In C++, the names of the cpp files matter more from a style perspective because the classes are more self-contained and should generally be in matching code/header files.
@derickflorian "So if I include a header and the function is defined elsewhere it while find the function definition and paste or link it into the file that calls that function?"
Essentially, yes. "Paste" in the case of inline functions and "link" in every other case.