www tuto the cpp cplusplus basics c++ c c-preprocessor

tuto - ¿Cómo funciona#error en C/C++?



the basics of c++ (3)

Estoy adivinando de # que es solo una utilidad de compilación. ¿Cómo se puede utilizar en programas C / C ++?

No encontré mucho al respecto en internet. Cualquier enlace sería útil.


Útil para verificar la configuración del compilador, así como para verificar las combinaciones de valores de macro. Algunos ejemplos aleatorios:

#if !defined(_DLL) # error This code will only work properly when compiled with /MD #endif #if _WIN32_WINNT < 0x502 # error Sorry, Windows versions prior to XP SP2 are not supported #endif #if defined(_APPLE) && defined(_LINUX) # error Conflicting operating system option selected, choose one. #endif


Aquí hay un enlace a la documentación del preprocesador Gnu que explica las #error y #warning : http://gcc.gnu.org/onlinedocs/cpp/Diagnostics.html

En particular:

La directiva #error hace que el preprocesador informe un error fatal. Los tokens que forman el resto de la línea que sigue a #error se utilizan como mensaje de error.

Consulte también esta pregunta sobre la portabilidad de estas directivas.


Hace que el compilador (o el preprocesador) muestre el mensaje de error. En C ++, también hace que la unidad de traducción esté mal formada (es decir, hace que la compilación falle).

Si tiene varias macros que podrían definirse y quiere asegurarse de que solo se definan ciertas combinaciones de ellas, puede usar #error para hacer que la compilación falle si se define una combinación no válida.

También puede ser útil si quiere estar seguro de que algún bloque de código nunca se compila (por cualquier motivo).