2009-07-27 9 views

Respuesta

16

Las macros predefinidas dependen del estándar y de la forma en que el compilador lo implemente.

Para GCC: http://gcc.gnu.org/onlinedocs/cpp/Predefined-Macros.html

Para Microsoft Visual Studio 8: http://msdn.microsoft.com/en-us/library/b0084kay(VS.80).aspx

Esta página de Wikipedia http://en.wikipedia.org/wiki/C_preprocessor#Compiler-specific_predefined_macros listas de cómo deshacerse de algunas de las macros predefinidas

+7

Solo para registrar la respuesta: gcc -dM -E -

0

Un programa puede definir una macro en un punto , elimine esa definición más tarde, y luego proporcione una definición diferente después de eso. Por lo tanto, en diferentes puntos en el programa, una macro puede tener diferentes definiciones, o no tener ninguna definición.

+0

Generalmente cierto para las macros, pero la pregunta era sobre las macros predefinidas – CsTamas

+0

@CsTamas: ¿está diciendo que no puede definir las macros predefinidas? –

+0

@Mitch Wheat: No, no dice eso. Pero la pregunta era diferente. – CsTamas

4

Una fuente probable de las macros predefinidas para una combinación específica de compilador y plataforma es Predef project en Sourceforge. Están intentando mantener un catálogo de todas las macros predefinidas en todos los compiladores de C y C++ en todas las plataformas. En la práctica, tienen cobertura de un buen número de plataformas para GCC y algunos otros compiladores.

Lo lograron mediante una combinación de lectura cuidadosa de la documentación, así como un script de shell que determina qué macros están predefinidas de la manera difícil: las prueba. Tengo entendido que realmente prueba cada cadena que puede encontrar en la imagen ejecutable del compilador y/o preprocesador para ver si tiene un significado predefinido.

Estarán encantados de agregar cualquier información que aún no tengan a su base de datos.

Cuestiones relacionadas