Curso de Programación en C/Prog132
Ir a la navegación
Ir a la búsqueda
Prog132
1 #include <stdio.h>
2
3 #define SQUARE(X) X*X
4 #define CUADRADO(X) (X)*(X)
5 #define CUAD(x) ((x)*(x))
6 #define PR(X) printf("El resultado es %d.\n", X)
7
8 int main(void)
9 {
10 int x = 4;
11 int z;
12
13 printf("x = %d\n", x);
14
15 z = SQUARE(x);
16 printf("Evaluando SQUARE(x): ");
17 PR(z);
18
19 z = SQUARE(2);
20 printf("Evaluando SQUARE(2): ");
21 PR(z);
22
23 printf("Evaluando SQUARE(x+2): ");
24 PR(SQUARE(x+2));
25
26 printf("Evaluando CUADRADO(x+2): ");
27 PR(CUADRADO(x+2));
28
29 printf("Evaluando 100/SQUARE(2): ");
30 PR(100/SQUARE(2));
31
32 printf("Evaluando 100/CUAD(2): ");
33 PR(100/CUAD(2));
34
35 printf("Evaluando CUAD(x+2): ");
36 PR(CUAD(x+2));
37
38 printf("x is %d.\n", x);
39 printf("Evaluando SQUARE(++x): ");
40
41 PR(SQUARE(++x));
42 printf("Después de incrementar, x is %x.\n", x);
43
44 x = 4;
45
46 printf("x is %d.\n", x);
47 printf("Evaluando CUADRADO(++x): ");
48
49 PR(CUADRADO(++x));
50 printf("Después de incrementar, x is %x.\n", x);
51
52 x = 4;
53
54 printf("x is %d.\n", x);
55 printf("Evaluando CUAD(++x): ");
56
57 PR(CUAD(++x));
58 printf("Después de incrementar, x is %x.\n", x);
59
60 return 0;
61 }
Resultado
[rrc@pwyr CClase]$ gcc -Wall -O2 -o Prog132 Prog132.c Prog132.c: In function ‘main’: Prog132.c:41:3: warning: operation on ‘x’ may be undefined [-Wsequence-point] Prog132.c:49:3: warning: operation on ‘x’ may be undefined [-Wsequence-point] Prog132.c:57:3: warning: operation on ‘x’ may be undefined [-Wsequence-point] [rrc@pwyr CClase]$ ./Prog132 x = 4 Evaluando SQUARE(x): El resultado es 16. Evaluando SQUARE(2): El resultado es 4. Evaluando SQUARE(x+2): El resultado es 14. Evaluando CUADRADO(x+2): El resultado es 36. Evaluando 100/SQUARE(2): El resultado es 100. Evaluando 100/CUAD(2): El resultado es 25. Evaluando CUAD(x+2): El resultado es 36. x is 4. Evaluando SQUARE(++x): El resultado es 36. Después de incrementar, x is 6. x is 4. Evaluando CUADRADO(++x): El resultado es 36. Después de incrementar, x is 6. x is 4. Evaluando CUAD(++x): El resultado es 36. Después de incrementar, x is 6. [rrc@pwyr CClase]$