Se stai parlando di C o C ++, allora no - tutto ciò che accade è che il tuo tempo di compilazione viene rallentato mentre il compilatore deve leggere e analizzare tutti i file di intestazione extra.
Questo può essere significativo, specialmente se le intestazioni includono altre intestazioni che includono .. hai l'idea. Il tempo di compilazione può aumentare notevolmente (al punto che alcuni compilatori come gli studi visivi memorizzano i risultati in "intestazioni precompilate")
Il compilatore produce eseguibili binari che fanno ciò che il codice gli dice di fare, quindi qualsiasi informazione di intestazione non necessaria viene semplicemente ignorata. Lo stesso può dirsi per qualche codice, se il compilatore può dire che non è necessario (ad esempio funzioni inline), allora quel codice potrebbe non essere trasformato in una parte del file binario di output.
Troppe intestazioni possono portare a bug del compilatore difficili da tracciare, se definisci qualcosa in due intestazioni e includi entrambe, puoi finire usando la definizione sbagliata. Di conseguenza, è sempre meglio provare a utilizzare il numero minimo di intestazioni necessario.