Open RicardoRodriguezArg opened 6 years ago
En este caso el mal uso de paréntesis es intencional. La idea del ejercicio planteado era marcar cómo funcionaba. En la rama fuera de "master" está la versión "corregida" (puse la expresión entre paréntesis, pero no también los argumentos).
https://github.com/OlivaEduardo/PrimerEjercicio/blob/cfcf64c31db8e42836ef16d9992f0afa7b65a7ed/Project1/Project1/Principal.cpp#L6 Por lo general, los argumentos de la macro son definidos entre parentesis para evitar que la macro se "rompa", asi mismo toda la macro Por ejemplo:
define SUMA(a, b) a + b //Esta mal definida (Forma 1)
Deberia ser definida de la siguiente manera Definida de la forma 1: const int value = SUMA(2,3); //Este funciona no se "rompe" const int value = SUMA(2, 3+1 ); //Este no funciona se "rompe"
Aca tenes todos los argumentos de la macro con parentisis y la macro con parentesis
#define SUMA(a, b) ( ( a ) + ( b ) )
//(Forma 2)Aca tenes todos los argumentos de la macro con parentisis y la macro sin parentesis final
#define SUMA(a, b) ( a ) + ( b )
//(Forma 2) const int value = SUMA(2,3); //Este funciona no se "rompe" const int value = SUMA(2, 3+1 ); //Este funciona const int value = SUMA(2, 3+1 ) +1 ; //Este no funciona