¿Hay una opción cl.exe para volcar todas las macros predefinidas (junto con los valores definidos). Algo así como gcc -dM -E - </dev/null para gcc.Microsoft C++ Macros predefinidas
8
A
Respuesta
8
Desafortunadamente, no creo que MSVC tenga una forma integrada de hacerlo.
He utilizado el siguiente programa para volcar valores de símbolos 'conocidos' predefinidos. Debería dar una atribución (porque sé que no se me ocurrió esto), pero no tengo notas de dónde lo obtuve (actualización: parece que probablemente lo obtuve de aquí: http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/644c12ed-e3a7-4c5a-a73a-610fcc7913ca) ...
#define __STR2__(x) #x
#define __STR1__(x) __STR2__(x)
#define __PPOUT__(x) "#define " #x " " __STR1__(x)
#if defined(_ATL_VER)
#pragma message(__PPOUT__(_ATL_VER ))
#endif
#if defined(_CHAR_UNSIGNED )
#pragma message(__PPOUT__(_CHAR_UNSIGNED ))
#endif
#if defined(__CLR_VER )
#pragma message(__PPOUT__(__CLR_VER ))
#endif
#if defined(__cplusplus_cli )
#pragma message(__PPOUT__(__cplusplus_cli ))
#endif
#if defined(__COUNTER__ )
#pragma message(__PPOUT__(__COUNTER__ ))
#endif
#if defined(__cplusplus )
#pragma message(__PPOUT__(__cplusplus ))
#endif
#if defined(_CPPLIB_VER )
#pragma message(__PPOUT__(_CPPLIB_VER ))
#endif
#if defined(_CPPRTTI )
#pragma message(__PPOUT__(_CPPRTTI ))
#endif
#if defined(_CPPUNWIND )
#pragma message(__PPOUT__(_CPPUNWIND ))
#endif
#if defined(_DEBUG )
#pragma message(__PPOUT__(_DEBUG ))
#endif
#if defined(_DLL )
#pragma message(__PPOUT__(_DLL ))
#endif
#if defined(__FUNCDNAME__ )
#pragma message(__PPOUT__(__FUNCDNAME__ ))
#endif
#if defined(__FUNCSIG__ )
#pragma message(__PPOUT__(__FUNCSIG__ ))
#endif
#if defined(__FUNCTION__ )
#pragma message(__PPOUT__(__FUNCTION__ ))
#endif
#if defined(_INTEGRAL_MAX_BITS )
#pragma message(__PPOUT__(_INTEGRAL_MAX_BITS ))
#endif
#if defined(_M_ALPHA )
#pragma message(__PPOUT__(_M_ALPHA ))
#endif
#if defined(_M_CEE )
#pragma message(__PPOUT__(_M_CEE ))
#endif
#if defined(_M_CEE_PURE )
#pragma message(__PPOUT__(_M_CEE_PURE ))
#endif
#if defined(_M_CEE_SAFE )
#pragma message(__PPOUT__(_M_CEE_SAFE ))
#endif
#if defined(_M_IX86 )
#pragma message(__PPOUT__(_M_IX86 ))
#endif
#if defined(_M_IA64 )
#pragma message(__PPOUT__(_M_IA64 ))
#endif
#if defined(_M_IX86_FP )
#pragma message(__PPOUT__(_M_IX86_FP ))
#endif
#if defined(_M_MPPC )
#pragma message(__PPOUT__(_M_MPPC ))
#endif
#if defined(_M_MRX000 )
#pragma message(__PPOUT__(_M_MRX000 ))
#endif
#if defined(_M_PPC )
#pragma message(__PPOUT__(_M_PPC ))
#endif
#if defined(_M_X64 )
#pragma message(__PPOUT__(_M_X64 ))
#endif
#if defined(_MANAGED )
#pragma message(__PPOUT__(_MANAGED ))
#endif
#if defined(_MFC_VER )
#pragma message(__PPOUT__(_MFC_VER ))
#endif
#if defined(_MSC_BUILD )
#pragma message(__PPOUT__(_MSC_BUILD ))
#endif
#if defined(_MSC_EXTENSIONS )
#pragma message(__PPOUT__(_MSC_EXTENSIONS ))
#endif
#if defined(_MSC_FULL_VER )
#pragma message(__PPOUT__(_MSC_FULL_VER ))
#endif
#if defined(_MSC_VER )
#pragma message(__PPOUT__(_MSC_VER ))
#endif
#if defined(__MSVC_RUNTIME_CHECKS )
#pragma message(__PPOUT__(__MSVC_RUNTIME_CHECKS ))
#endif
#if defined(_MT )
#pragma message(__PPOUT__(_MT ))
#endif
#if defined(_NATIVE_WCHAR_T_DEFINED)
#pragma message(__PPOUT__(_NATIVE_WCHAR_T_DEFINED))
#endif
#if defined(_OPENMP )
#pragma message(__PPOUT__(_OPENMP ))
#endif
#if defined(_VC_NODEFAULTLIB )
#pragma message(__PPOUT__(_VC_NODEFAULTLIB ))
#endif
#if defined(_WCHAR_T_DEFINED )
#pragma message(__PPOUT__(_WCHAR_T_DEFINED ))
#endif
#if defined(_WIN32 )
#pragma message(__PPOUT__(_WIN32 ))
#endif
#if defined(_WIN64 )
#pragma message(__PPOUT__(_WIN64 ))
#endif
#if defined(_Wp64 )
#pragma message(__PPOUT__(_Wp64 ))
#endif
void main() {}
4
no veo esa opción en el MSDN documentation, pero la lista de macros predefinidas para Visual Studio 2008 y 2010 están disponibles.
Cuestiones relacionadas
- 1. Cómo establecer macros predefinidas en Code :: Blocks
- 2. ¿Cuáles son las macros predefinidas de gcc para el número de versión del compilador?
- 3. macros C++ con memoria?
- 4. Preprocesador C, macros recursivas
- 5. Sobrecarga C macros
- 6. Bazar (bzr) ubicaciones predefinidas
- 7. macros en macros
- 8. C macros para crear cadenas
- 9. C sizeof equivalent for macros
- 10. ¿Macros de macroproducción en C?
- 11. ficha de C Constantes/Macros
- 12. macros del preprocesador como parámetros a otras macros
- 13. Microsoft C++ Language Reference
- 14. C# para escribir macros en Visual Studio?
- 15. Cadenas de concatenación en macros - C++
- 16. C pre-procesador de macros de expansión
- 17. C Macros de impresión de depuración
- 18. permutaciones de matriz C con macros
- 19. Al utilizar macros tipo función en C
- 20. ¿Microsoft continuará admitiendo C++/CLI?
- 21. Referencia para excepciones predefinidas en .NET
- 22. Variables de entorno predefinidas de Delphi
- 23. DataSet to DataGridView con Columnas predefinidas
- 24. ¿Puedo ver las macros definidas durante la compilación de un código C?
- 25. Limpiar código C/C++ revela problemas con macros variadas
- 26. Cualquier utilidad para probar expandir C/C++ #define macros?
- 27. ¿Cómo desactivo temporalmente una expansión de macros en C/C++?
- 28. DocBook macros?
- 29. Uso de macros en Clojure
- 30. Trazar funciones de densidad predefinidas usando ggplot y R
Esta solución es lo suficientemente buena para mí. Gracias – Ganesh