/* * ISA 563, Spring 2011 * Copyleft by Muhammad Abdulla */ #include #include #include #include #include #include /* * func_ptr.c -- demonstrates the use of function pointers */ void dog ( ) { printf("wuff!\n"); } void cat ( ) { printf("meow!\n"); } void unknown ( ) { printf("Sorry, don't know how to make a sound.\n"); } int main (int argc, char *argv[] ) { char *animal; void (* fp)() = NULL; if ( argc != 2 ) { fprintf(stderr, "Usage: %s some-animal\n", argv[0]); exit(-1); } animal = argv[1]; if ( strcmp(animal, "dog") == 0 ) { fp = dog; } else if ( strcmp(animal, "cat") == 0 ) { fp = cat; } else { fp = unknown; } fp(); return 0; }