2015-04-15 21 views
6

Qual è lo scopo dell'intestazione features.h? Perché e quando può essere utilizzato nel mio codice? La domanda potrebbe essere stupida (e sono sicuro che sia così), ma non ho trovato una risposta chiara.Qual è lo scopo dell'intestazione features.h?

Definisce le funzionalità di origine supportate dal sistema? Oppure definisce alcune cose aggiuntive che devono essere definite in base ad altre definizioni?

risposta

1

In generale, se è necessario utilizzare una delle variabili o funzioni definite in un file di intestazione, è necessario includerlo nel programma. Questa regola è valida anche per features.h. Si può vedere un URL per features.h per il vostro riferimento qui sotto:

http://repo-genesis3.cbi.utsa.edu/crossref/heccer/usr/include/features.h.html

+4

La domanda in realtà era: perché definisce in features.h e quando possono essere utilizzati, non perché i file di intestazione ... – olegst

0

Da features.h File Reference

Definisce se includere varianti algoritmo. Meno varianti riducono la dimensione dell'eseguibile e compile il tempo. Questo file è un'estensione parallela GNU alla libreria standard di C++.

Quindi questo file includerà alcuni algoritmi elencati nella pagina di riferimento.

+2

Ti riferisci al parallelo/features.h di glibcxx, ma la domanda riguardava il top- livello di intestazione Linux features.h. –

2

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.