Welche C-Präprozessormakros wurden bereits in gcc definiert?

8

In gcc , wie kann ich überprüfen, welche C Präprozessordefinitionen während der Kompilierung eines C-Programms vorhanden sind, insbesondere welche Standard- oder plattformspezifischen Makrodefinitionen definiert sind?

>     
Adrian Panasiuk 27.07.2009, 05:52
quelle

3 Antworten

16

Vordefinierte Makros hängen vom Standard und der Art ab, wie der Compiler es implementiert.

Für GCC: Ссылка

Für Microsoft Visual Studio 8: Ссылка

Diese Wikipedia-Seite Ссылка listet auf, wie Sie bei einigen der vordefinierten Makros dumpen

    
CsTamas 27.07.2009, 06:00
quelle
4

Eine wahrscheinliche Quelle der vordefinierten Makros für eine bestimmte Kombination aus Compiler und Plattform ist das Predef-Projekt bei Sourceforge. Sie versuchen, einen Katalog aller vordefinierten Makros in allen C- und C ++ - Compilern auf allen Plattformen zu verwalten. In der Praxis haben sie eine ganze Reihe von Plattformen für GCC und ein paar andere Compiler abgedeckt.

Sie haben dies durch eine Kombination aus sorgfältigem Lesen der Dokumentation und einem Shell-Skript erreicht, das herausfindet, welche Makros auf die harte Art und Weise vordefiniert sind: es versucht sie. Mein Verständnis ist, dass es tatsächlich jede Zeichenfolge versucht, die es im ausführbaren Bild des Compilers und / oder Präprozessors finden kann, um zu sehen, ob es eine vordefinierte Bedeutung hat.

Sie fügen alle Informationen, die sie noch nicht haben, gerne in ihre Datenbank ein.

    
RBerteig 27.07.2009 06:41
quelle
0
  

Ein Programm kann ein Makro bei eins definieren   Punkt, entferne diese Definition später,   und dann ein anderes bieten   Definition danach. Also, bei   verschiedene Punkte im Programm, a   Makro kann unterschiedliche Definitionen haben,   oder haben überhaupt keine Definition.

    
Mitch Wheat 27.07.2009 06:00
quelle

Tags und Links