Includes überprüfen
-
Hallo zusammen,
Meine Frage ist, ob es eine Spezifikation gibt in der kurz und knapp steht, wo welche Konstante, Funktion, etc. definiert ist (für die Standardbibliothek).
Natürlich kann ich mir eine entsprechende Datei selber anlegen aber ich wollte das Rad nicht neu erfinden.Ich möchte ein kleines Kommandozeilentool schreiben, welches die Includes in C-Dateien überprüft, um einem zu sagen welche davon überflüssig sind.
Dazu könnte ich auch Zeilen mit #include nacheinander entfernen (/wieder einfügen), neu compilieren und prüfen ob entsprechende Warnungen von GCC ausgegeben werden aber ich würde es gerne ohne diesen Umweg machen.Vielen Dank.
MfG,
Liquid
-
Oder man könnte mit Sorgfalt arbeiten, anstatt nur nach gut Glück Zeilen zusammen zu setzen, bis irgendetwas compiliert.
-
Es geht um umfangreichere Projekte bei denen es auch mal
passieren kann, dass man eine Funktion nicht mehr benutzt und
vergisst die Includes anzupassen. Im übrigen ist es eine Studienarbeit
also hilft mir das leider nicht ;-).
-
Im Übrigen möchte ich noch meine Dankbarkeit für den Beitrag ergänzen.
Nicht nur das du außer acht lässt, dass es nichts zur Sache tut "warum" ich mich mit diesem Thema beschäftige,
du schlägst auch noch einen anderen Lösungsansatz vor obwohl die Frage sich da schon eher auf den inneren
Aufbau eines Compilers in Hinsicht auf den Präprozessor bezogen hat (immerhin scheint GCC ja genau dies zu tun).
Danke sehrVielleicht sollte man deinen Vorschlag in künftigen Compilern umsetzen,
immerhin kann man sich bei genügend vorausgesetzter Sorgfalt die aufwändige
Fehlerbehandlung sparen :D.
-
Liquid64 schrieb:
Meine Frage ist, ob es eine Spezifikation gibt in der kurz und knapp steht, wo welche Konstante, Funktion, etc. definiert ist (für die Standardbibliothek).
Ja es gibt eine solche Spezifikation, nennt sich ANSI C Standard.
Für die dort standardisierten Funktionen, Variablen, Makros ist jeweils festgelegt, in welcher der Standard-Headerdateien die Deklaration erfolgt.
-
Nachdem die reguläre Fassung ja Text enthält, werde ich mir wohl
doch die Mühe machen müssen diese zusammenzufassen. Danke
-
Das Tool
lint
kann sowas auch, nicht nur für Standardheader. (Es gibt AFAIK viele lint-Varianten, im Zweifel sprech ich von PC-Lint, das kann sowas.)
-
Falls es dann mal jemand anderen interessieren sollte:
Die Zusammenfassung befindet sich in Annex B ISO/IEC 9899: TC2
-
Liquid64 schrieb:
Falls es dann mal jemand anderen interessieren sollte:
Die Zusammenfassung befindet sich in Annex B ISO/IEC 9899: TC2Moment, du wusstest nicht, dass die C Header dokumentiert sind? Jetzt verstehe ich, warum du meine Antwort nicht verstanden hast.