#define B 100+B
main()
{
int i= B;
}
Yo sé que está mal, pero sólo por curiosidad, cuando compilo que recibí este extraño error:¿Cómo funciona una macro de preprocesador?
"B was not declared in this scope".
¿Por qué es así? Si este error se debió a que el compilador elimina la macro después de su sustitución, ¿cómo funciona el siguiente código bien, cuando B debe haber sido eliminado antes de que estuviera disponible para A?
#define B 100
#define A 100+B
main()
{
int i= B;
int j =A;
}
Eso es inválida C++, por cierto . –
Colocar espacios en un solo lado del operador '=' es tan feo ... –
@RadekSlupik Pero al menos están en lados diferentes en las dos líneas, lo que hace que parezca algo divertido. –