-
-
Save phaya/3094d39c70eeb9a0245a to your computer and use it in GitHub Desktop.
¿Por qué el siguiente código imprime 4 en vez de 7?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#define N 4; | |
int main() { | |
int sum; | |
sum = N + 3; | |
printf("sum: %d\n", sum); | |
return 0; | |
} |
¡Perfecto! Las macros se sustituyen literalmente antes de que actúe el compilador. Los errores que puedan aparecer hacen referencia al código después de la sustitución, lo cual complica bastante encontrar el error.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
El problema es que la macro que has definido es "4;", por lo que sum = N + 3 equivale a escribir sum = 4; + 3;, y el programa interpreta que sum es igual que N, y luego un +3 que no influye en el resto del programa.