Nuovi identificatori
C, nel corso degli anni, ha aggiunto varie nuove funzioni della libreria standard, tipi, definizioni, ecc.
È possibile che il codice precedente sia stato utilizzato prima di alcuni di questi nuovi identificatori.
Un esempio classico è bool,true,false
definito nel "nuovo" <stdbool.h>
.
Per evitare che una ricompilazione di quel vecchio codice con un nuovo compilatore fallisse, bool,true,false
sono definiti in un file di inclusione standard che prima non esisteva. Quindi il vecchio codice non lo avrebbe incluso e non si presenterebbe alcun conflitto.
Di seguito sono riportati inclusi aggiunti dal C89
<assert.h>
<fenv.h>
<inttypes.h>
<iso646.h>
<stdalign.h>
<stdatomic.h>
<stdbool.h>
<stdint.h>
<stdnoreturn.h>
<tgmath.h>
<threads.h>
<uchar.h>
<wchar.h>
<wctype.h>
Segmentazione della libreria
Sebbene la libreria C possa essere una grande entità, storicamente è stata in pezzi, notabile che il math in virgola mobile è stato gestito separatamente a causa delle sue dimensioni e della non applicabilità a molti programmi C senza Matematica FP. Quindi c'è stato un certo allineamento dei file di intestazione selezionati con alcuni blocchi della libreria C standard. Il codice che non include l'intestazione probabilmente non ha bisogno di quel pezzo della libreria.