Tengo una pregunta sobre las directivas de preprocesador en c ++:
Por ejemplo:
#ifndef QUESTION
//some code here
#ifndef QUESTION
//some code here
#endif
#endif
¿Podemos usarlo de esta manera y el compilador de C ++ puede coincidir con ifndefy endifde la manera correcta?
c++
c-preprocessor
preprocessor-directive
Brian Tompsett - 汤 莱恩
fuente
fuente

#define AAA #define XXX, no funcionará correctamente.Respuestas:
Si podemos. La
#endifdeclaración coincide con la anterior#if#ifdefo#ifndefetc. para la que no ha habido una correspondencia#endif.p.ej
#if ----------| #if -----| | #endif ---| | #endif --------|fuente
Sí, puede anidar
#if/#endifbloques. Algunos estilos de codificación C le dirían que escriba#ifdef CONDITION1 # ifdef CONDITION2 # endif #endifusando espacios para denotar el nivel de anidamiento.
fuente
#ifdef#que se permitían espacios entre las directivas del preprocesador. ¡Muchas gracias por ese consejo!En su código, la sección #ifndef PREGUNTA se descartará a menos que #undef PREGUNTA.
¡Buena suerte!
fuente