cis-lclient20:~/2012/c/make>more testfac.c /* my include file */ #include #define INTTYPE unsigned char INTTYPE factorial(INTTYPE); INTTYPE input(); void output(INTTYPE); void main() { INTTYPE f, n; n = input(); f = factorial(n); output(f); } INTTYPE input() { int x; printf("input a number - "); scanf("%i", &x); return (INTTYPE) x; } INTTYPE factorial(INTTYPE n){ if(n!=1){ return(n * factorial(n-1)); } else return (INTTYPE) 1; } void output(INTTYPE f) { printf("The length of f is %d\n", sizeof(INTTYPE)); if (sizeof(INTTYPE) == 8) { printf("The factorial is %llu\n", f); } else { printf("The factorial is %u\n", f); } return; } cis-lclient20:~/2012/c/make>gcc testfac.c cis-lclient20:~/2012/c/make>./a.out input a number - 5 The length of f is 1 The factorial is 120 cis-lclient20:~/2012/c/make>