#includes are a totally broken idea.  They are the canonical violation of the DRY (Don&#x27;t Repeat Yourself) principle.  With #includes, whenever you want to make a change in the signature of a C function you have to do it in two places.  The only reason we have them at all is because early C compilers were one-pass compilers, and so they needed to have declarations spoon-fed to them in the right order so that they could run in the 64k or so of RAM that was available on the PDP-8.  There is no good reason to have includes today except that the C legacy is so strong and the idea is so deeply entrenched in people&#x27;s minds and in the structure of C that they are nearly impossible to get rid of.