Die Makros finden sich hier:
Allgemeine Richtlinien finden Sie hier:
Bitte senden Sie Updates/Korrekturen an Vorref-Contribute oder über Pull-Anfragen auf GitHub.
C- und C ++ - Compiler definieren automatisch bestimmte Makros, mit denen die Funktionen für Compiler oder Betriebssysteme geprüft werden können. Dies ist nützlich beim Schreiben tragbarer Software.
Auf diesen Seiten werden verschiedene vordefinierte Compiler-Makros aufgeführt, mit denen Standards, Compiler, Betriebssysteme, Hardwarearchitekturen und sogar grundlegende Laufzeitbibliotheken zur Kompilierungszeit identifiziert werden können.
Wenn wir beispielsweise einen generischen oder undurchsichtigen Zeigertyp verwenden möchten, verwenden wir void Zeiger. Alte K & R -Compiler (ab dem Zeitpunkt vor dem ersten ANSI C -Standard) unterstützen jedoch keine voiden Zeiger. Stattdessen können wir unseren eigenen Typ definieren:
#if defined( __STDC__ ) || defined( __cplusplus ) || defined( _MSC_EXTENSIONS )
typedef void * t_pointer ;
#else
typedef char * t_pointer ;
#endif Ein weiteres Beispiel: Microsoft Visual C ++ Version 4.2 hat ein Pragma hinzugefügt, um die Kompilierungszeiten zu verkürzen, indem nur einmal eine Datei einbezogen wird (wenn _MSC_VER nicht definiert ist, wird es auf 0 (Null) bewertet. Einige Compiler können sich jedoch über ein undefinedes Makro beschweren).
#if defined( _MSC_VER ) && ( _MSC_VER >= 1020 )
#pragma once
#endifDie auf diesen Seiten enthaltenen Makros wurden durch Lieferantendokumentation, das Definieren von Skript, Mitwirkenden und Quellcode von Drittanbietern erhalten. Es wird keine Garantie für die Richtigkeit der Makros gegeben.
Eine häufig verwendete Alternative ist Autoconf, ein leistungsfähigeres Werkzeug, um verschiedene Arten von Merkmalen, einschließlich Kompilierungsoptionen, zu untersuchen. AutoConf ist jedoch ziemlich unix-zentriert und benötigt eine Unix-Schicht auf anderen Plattformen (z. B. Cygwin unter Windows). Andere Alternativen sind gebäudert, Cmake, Scons, PMK, Jam, Ant und Bakefile.
Bjorn Reese, Daniel Stenberg, Greg Roelofs, Steven G. Johnson, Wlodzimierz ABX Skiba, Marc Finet, Philip Newton, Mitchell Charity, Christian Klutz, Seo Sanghyeon, Chris Adami, Geoff Clare, Dan Fandrich, Mike Gorchak, Yuri D'Elia, Gynvael Coldwind, Alain Tauch, Vadim Zeitlin, Steve White, Thomas David Rivers, Tom Honermann, Martin Mitas, Dinesh Chhadwa, Erik Faye-Lund, Leo Davis, Paul Hsieh, Roland Schwarz, Darko Kolakovic, Andy Buonviri, Ming Kin Lai, Kent Johnson, Helmut Baier, olivereder, Rai, Kent Johnson, Helmut Baier, oliver, Luis Rodriguez Garcia, Jeroen Ruigrok van der Werven, Uffe Jakobsen, Bryan Ashby, Bruno Haible, Artur Bac, Terry Schwarz, Leo Davis, Markus Duft, William Dang, Paul Green, Ruben Van Boxem, Pau Garcia i Quiles, Mikulas Patocka, Leo Davis, Mark Ferry, Holger Machens, Simon Watts, Paul Hargrove, Hans-Christoph Steiner, Gerald Combs, Denys Bulant, Massimo Morara, Jeremy Bennett, Guillem Jover, Riku Voipio, Jacques Pelletier, Mark Jarvin, Georg Sauthoff, Scot Jenkins, Grzegorz Brzęczyszczykiewicz, John Dallman, Gianmichele Toglia, Robbie Groenewoudt, Andreas Mohr, аoral лексей ююрецкий, Sverre Hvammen Johansen, Stefan Tauner, Daniel Garcia, Ozkan Sezer, Dean Saridakis, Frank Long, Kevin Adler.