function pointer

Status
Not open for further replies.

Baljeet

Member
Jan 31, 2011
76
0
Function Pointers are pointers, i.e. variables, which point to the address of a function. Thus they exhibit polymorphism by call by different methods. Function pointers is an exclusive propery of the c language and should be used wisely as functions are always more powerful and fact in execution as compared to function pointers.

Consider the following example.

Code:
#include<stdio.h>
#include<conio.h>

void new_(int);
void old(int);

void main(void)
{
	  void (*funcpoint)(int);
	  int number;
	  clrscr();
	  printf("Enter a number");
	  scanf("%d", &number);
	  funcpoint = (number > 5) ? old : new_;
	  funcpoint(number);
	  getch();
}

void new_(int n)
{
	  printf("The number %d, is less or equal to 5.\n", n);
}
void old(int m)
{
	  printf("The number %d, is more than 5.\n", m);
}

The function pointer *funcpoint is declared here as void (*funcpoint)(int), which specifies both the return type (void) and the types of arguments (int) of the function. We then assign the pointer to a particular function. Now we can call the function normally. This gives a double nature to teh function.

All Credits goes to one who really made this...
 
Status
Not open for further replies.

Users who are viewing this thread

Top