Comment
Comment by teo_zero
Because if your program is split into many files (as is the norm for non- trivial projects) and several of these files #include the same header, then the functions defined in such header are instantiated/compiled several times. You end up with longer compilation times and code duplication.