Frage

In Visual Studio (C ++), ist es eine Möglichkeit, leicht doppelte Überschriften zu finden, die in CPP-Dateien definiert werden?

Ich versuche auch, Wege zu finden, diese Situation zu erkennen:

  • A enthält B enthält C
  • A enthält C
  • => A muss nicht C enthalten
War es hilfreich?

Lösung

Wenn Sie diese Situation erkennen wollen könnten Sie dieses Makro Anfang jeder Datei hinzufügen. Ersatz A für den Namen der Datei

#if A_H
#error "Duplicate include"
#else
#define A_H
#endif

Andere Tipps

Im Allgemeinen markieren Sie sie mit #pragma once, oder das Äquivalent Makroschutz und aufhören, über sie zu kümmern.

Wenn Sie MS-Compiler verwenden, können Sie eine Pragma Nachricht setzen (IIRC, es könnte ein Pragma Warnung oder Pragma Fehler stattdessen sein) mit dem Namen der Header-Datei ganz am Anfang jeder Header-Datei und Ihre Build-Ausgabe wird die Liste der jeder zeigen, die pro Datei enthalten ist wird die kompiliert wird.

Das wäre am besten für Ihre Header-Dateien arbeiten, da das System diejenigen nicht einbezogen werden.

Wenn Sie alle enthalten Header, um zu sehen, die Kompilierungsoptionen bearbeiten schließen / P (Vorprozess in eine Datei) , die Ihren Code nicht kompiliert werden, sondern das Pre-processer in eine Datei umleiten wird, können Sie dann grep durch sie die # include-Anweisungen zu sehen. Beachten Sie diese Dateien sehr groß sein wird.

PC-Lint (und wahrscheinlich auch andere Fussel-Tools) können nicht verwendete zeigen Include-Dateien.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top