#include <stdio.h>
int power (int i) {
int square (int x) {
return x * x;
}
int cube (int x) {
return x * x * x;
}
return (i) ? cube : square;
}
#define SQUARE 0
#define CUBE !0
int main () {
int (*cube) (int) = power (CUBE);
int (*square) (int) = power (SQUARE);
printf ("==================================\n");
printf ("square(5) = %u, cube(5) = %u, \n", square (5), cube (5));
printf ("==================================\n");
printf ("square(3) = %u, cube(3) = %u, \n", square (3), cube (3));
printf ("==================================\n");
return 0;
}