Curso de Programación en C/Prog132

De WikiCabal
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]$ 

Explicación