Compiling translates the C code from C files individually into object code without linking functions and variables from external libraries (such as stdio or stdlib). Linking will take all the previously created object files, combine them together and link variables and functions that come from external libraries, thus resolving unresolved external references.