Prediga la salida del siguiente programa
C++
#include <iostream> using namespace std; #define square(x) x*x int main() { int x; x = 36 / square(6); cout << x; return 0; } // This code is contributed by sarajadhav12052009
C
#include <stdio.h> #define square(x) x*x int main() { int x; x = 36/square(6); printf("%d",x); getchar(); return 0; }
Producción
36
Explicación: el preprocesador reemplaza el cuadrado (6) por 6 * 6 y la expresión se convierte en x = 36/6 * 6 y el valor de x se calcula como 36. Si queremos el comportamiento correcto de macro cuadrado (x), debemos declararlo como # define square(x) ((x)*(x)) /* Tenga en cuenta que la expresión (x*x) también fallará para square(6-2) */
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA