Understanding the most critical aspect in creating your own executables.
It is essential to understand the linking process well before attempting to write larger software in C. Not being familiar with how linkers work and how they resolve the language scoping rules can lead to mistakes. For example, variables with the same name residing in different libraries can conflict.