Il file di intestazione features.h
fornisce varie definizioni di macro che indicano la conformità standard ad altri file di intestazione, ovvero quali caratteristiche (da cui il nome) devono essere attivate o disattivate a seconda dello standard che l'utente desidera utilizzare.
La maggior parte dei compilatori C/C++ dispone di opzioni della riga di comando per gestire la conformità agli standard. Prendiamo GCC come esempio: quando si passa l'opzione -std=gnu9x
, si richiede il dialetto GNU dello standard C99. L'intestazione features.h
si assicura che tutte le altre intestazioni che lo includono attivino o disattivino esattamente quelle funzionalità necessarie per supportare questo particolare dialetto. Questo risultato è ottenuto da #define
-ing o #undef
- con alcune macro "intermedie".
Come bonus, features.h
fornisce anche i macro di informazioni sulla versione glibc
e vari altri bit & bob.
fonte
2016-08-22 10:29:10
La domanda in realtà era: perché definisce in features.h e quando possono essere utilizzati, non perché i file di intestazione ... – olegst