una integrar integrales integracion indefinidas desde definida constante cero calculo calculadora antiderivadas c++ c-preprocessor

c++ - integrar - integrales indefinidas



¿Cuál es el valor de una constante indefinida utilizada en#if? (2)

Sí, se puede confiar en eso. El estándar C99 especifica en §6.10.1 ¶3:

Después de que se hayan realizado todas las sustituciones debidas a la expansión de macro y al operador unario definido, todos los identificadores restantes se reemplazan por el número de pp 0

Editar

Lo siento, pensé que era una pregunta en C; aún así, no es gran cosa, la sección equivalente en el estándar de C ++ (§16.1 ¶4) establece:

Después de que se hayan realizado todas las sustituciones debidas a la expansión de macro y al operador unario definido, todos los identificadores y palabras clave restantes, excepto para true y false , se reemplazan por el número de pp 0

La única diferencia es el manejo diferente de true y false , que en C no requieren un manejo especial, mientras que en C ++ tienen un significado especial incluso en la fase de preprocesamiento.

Mi preprocesador parece suponer que las constantes indefinidas son 0 con el fin de evaluar #if condiciones.

¿Se puede confiar en esto, o las constantes indefinidas dan un comportamiento indefinido?


Un identificador que no está definido como macro se convierte a 0 antes de que se evalúe la expresión.

La excepción es el identificador true , que se convierte a 1 . Esto es específico del preprocesador C ++; en C, esto no sucede y deberá incluir <stdbool.h> para usar true esta manera, en cuyo caso se definirá como una macro y no se requiere un manejo especial.