More importantly, function pointers can be used (especially in type definitions) as a way for polymorphism and object oriented code in C.<p>If you have a struct, and it has type definition pointers in it, you can create a set of initialization functions that set the function pointers to the correct "class functions" of that type.<p>I use function pointers in C everyday and it makes coding more robust and extremely easy to get the performance out of OOP code in a procedural environment when C++ isn't an option.