Come posso trovare intestazioni duplicate in una soluzione di grandi dimensioni in MSVC ++ 2005 o 2008?
-
03-07-2019 - |
Domanda
In Visual Studio (C ++), c'è un modo per trovare facilmente intestazioni duplicate che sono definite nei file .cpp?
Sto anche cercando di trovare modi per rilevare questa situazione:
- A include B include C
- A include C
- = > A non è necessario includere C
Soluzione
Se si desidera rilevare questa situazione, è possibile aggiungere questa macro all'inizio di ogni file. Sostituisci A con il nome del file
#if A_H
#error "Duplicate include"
#else
#define A_H
#endif
Altri suggerimenti
In genere, li contrassegni con #pragma una volta o con l'equivalente macro-guardia e smetti di preoccupartene.
Se si utilizza il compilatore MS, è possibile inserire un messaggio #pragma (IIRC, potrebbe essere invece un avviso #pragma o errore #pragma) con il nome del file di intestazione nella parte superiore di ogni file di intestazione e l'output di compilazione mostrerà l'elenco di tutti quelli inclusi per ciascun file compilato.
Funzionerebbe meglio per i file di intestazione, poiché quelli di sistema non saranno inclusi.
Se vuoi vedere tutte le intestazioni incluse, modifica le opzioni di compilazione per includere / P (preelaborare un file) che non compilerà il tuo codice, ma invece reindirizzerà il pre-elaboratore su un file, puoi quindi scorrere attraverso di esso per vedere le istruzioni #include. Ricorda che questi file saranno di grandi dimensioni.
PC-Lint (e probabilmente altri strumenti per lanugine) possono indicare file di inclusione non utilizzati.