Las macros se encuentran aquí:
Las pautas generales se encuentran aquí:
Envíe actualizaciones/correcciones a Predef-Contribute o mediante solicitudes de extracción en GitHub.
Los compiladores C y C ++ definen automáticamente ciertas macros que pueden usarse para verificar las características del compilador o del sistema operativo. Esto es útil al escribir software portátil.
Estas páginas enumeran varias macros de compiladores predefinidos que pueden usarse para identificar estándares, compiladores, sistemas operativos, arquitecturas de hardware e incluso bibliotecas básicas en tiempo de ejecución en tiempo de compilación.
Por ejemplo, si queremos usar un tipo de puntero genérico u opaco, usamos punteros vacíos. Sin embargo, los antiguos compiladores de K&R (desde el momento antes del primer estándar Ansi C) no admiten punteros vacíos. En su lugar, podemos definir nuestro propio tipo:
#if defined( __STDC__ ) || defined( __cplusplus ) || defined( _MSC_EXTENSIONS )
typedef void * t_pointer ;
#else
typedef char * t_pointer ;
#endif Otro ejemplo, Microsoft Visual C ++ versión 4.2 agregó un Pragma para reducir los tiempos de compilación al incluir solo un archivo una vez (si _MSC_VER no está definido, entonces se evaluará a 0 (cero), sin embargo, algunos compiladores pueden quejarse de una macro indefinida)
#if defined( _MSC_VER ) && ( _MSC_VER >= 1020 )
#pragma once
#endifLas macros contenidas en estas páginas se han obtenido a través de la documentación del proveedor, el script define, los contribuyentes y el código fuente de terceros. No se da ninguna garantía sobre la corrección de las macros.
Una alternativa a menudo utilizada es Autoconf, que es una herramienta más poderosa para examinar varios tipos de características, incluidas las opciones de compilación. Sin embargo, AutoConF está bastante centrado en unix y requiere una capa de Unix en otras plataformas (por ejemplo, cygwin en Windows). Otras alternativas son BuildTool, CMake, Scons, PMK, Jam, Ant y 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 Bauer, Oliver Schneider, Ron Pimlett, JoseLets, JoseBlet 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 Greenewt y Greeewt, y GreeNewt, y, y Gianewauwt, y, y Gianmichele Toglia, Robbie Greenewt y GreeNewat, y GreeNewau Алексей юрецкий, Sverre Hvammen Johansen, Stefan Tauner, Daniel García, Ozkan Sezer, Dean Saridakis, Frank Long, Kevin Adler.