Arindam Biswas wrote: > Function pointer has some overhead associated with it. Still WHY SHOULD we > use function pointer instead of calling directly that function. >
Paul provided an answer but I would like to expand on this slightly: "Because it allows you to change the function being called at runtime." The key here is that once you reduce a function to a pointer, you can pass it around like any other variable. You can pass the function address into another function, which can then call it. You can call the function multiple times with different function pointers and have the same code run different functions each time. You can typecast it to an (int *) and assign an integer to it, then enjoy the chaos that ensues. -- John Gaughan
