La directiva #ifdef se utiliza para comprobar si se define un símbolo de preprocesador. la norma (C11 6.4.2 Identifiers
) ordena que los identificadores no deben comenzar con un dígito:
identifier:
identifier-nondigit
identifier identifier-nondigit
identifier digit
identifier-nondigit:
nondigit
universal-character-name
other implementation-defined characters>
nondigit: one of
_ a b c d e f g h i j k l m
n o p q r s t u v w x y z
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
digit: one of
0 1 2 3 4 5 6 7 8 9
La forma correcta de utilizar el pre-procesador para bloquear el código es:
#if 0
: : :
#endif
También puede utilizar:
#ifdef NO_CHANCE_THAT_THIS_SYMBOL_WILL_EVER_EXIST
: : :
#endif
pero hay que estar seguro de que los símbolos se no pueden establecer de forma inadvertida por el código othe r que el tuyo En otras palabras, no use algo como NOTUSED
o DONOTCOMPILE
que otros también pueden usar. Para estar seguro, se debe preferir la opción #if
.
Creo que has olvidado tu memoria; #ifdef 0 es un error en C y en C++. –
Tiene razón, me equivoqué, no funciona en C, no voy a eliminar la pregunta porque tal vez alguien en el futuro cometa el mismo error. – Eduardo
@Eduardo Gracias por no eliminar la pregunta. – kartik