10 Stimmen

Wie kann man (in GCC) wissen, wann ein bestimmtes Makro/Präprozessor-Symbol deklariert wird?

Angenommen, ich habe #define foo in verschiedenen Header-Dateien. Es kann sich zu verschiedenen Dingen ausweiten. Ich würde gerne wissen (beim Kompilieren einer .cc-Datei), wenn eine #define auftritt, worauf sie sich ausdehnt, um welche Datei es sich handelt und woher sie eingeschlossen wurde.

Ist das möglich? Wenn nicht, gibt es irgendwelche Teillösungen, die helfen könnten?

Sie können gerne Kommentare mit Klärungswünschen hinzufügen.

Edit: Die aktuellen Antworten scheinen sich auf den Fall zu konzentrieren, dass es ein #define gibt und ich nur zur Definition springen oder wissen will, wie die Definition lautet. Das ist der einfache Fall, und ja, Ihre Lösungen funktionieren. Aber wenn ich dieselbe #define in verschiedenen Dateien habe und wissen will, welche zuerst eintritt, ist keine dieser Techniken nützlich. Okay, ich habe #warning tatsächlich sorgfältig verwendet, um die richtige Stelle zu finden. Aber das erfordert viel Arbeit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X