// @topic W090105 C function pointer demo // @brief Using function pointers and typedef #include <iostream> #include <cstdlib> void foo( int param ) { std::cout << __FUNCTION__ << "(" << param << ")\n"; } void bar ( int param1, int param2 ) { std::cout << __FUNCTION__ << "(" << param1 << "," << param2 << ")\n"; } // typedef creates an alias name for an existing data type // Make ColorT an alias for an int: typedef int ColorT; // Make Pf an alias for a pointer to a function // that takes two ints and returns a void: typedef void ( *Pf ) ( int, int ); int main() { void foo( int ); // function declaration foo( 111 ); // normal function call void ( *pfoo )( int ); // pfoo declared as a ptr to function pfoo = &foo; // pfoo now points to foo pfoo( 222 ); // function call via ptr to function Pf pbar; // another function ptr pbar = &bar; // now it points to function bar pbar( 333, 444 ); // function call via ptr to function system("pause"); return 0; }