An simple example:
#include<stdio.h> int plus(int a,int b) { return a+b; } int main() { int (*func)(int,int); func=+ //point to the function ‘‘plus(int,int)‘‘ printf("the result is %d\n",(*func)(4,7)); return 0; }
Another example:
#include <stdio.h> #define MAX_COLORS 256 typedef struct { char* name; int red; int green; int blue; } Color; Color Colors[MAX_COLORS]; void eachColor (void (*fp)(Color *c)) { int i; for (i=0; i<MAX_COLORS; i++) (*fp)(&Colors[i]); } void printColor(Color* c) { if (c->name) printf("%s = %i,%i,%i\n", c->name, c->red, c->green, c->blue); } int main() { Colors[0].name="red"; Colors[0].red=255; Colors[1].name="blue"; Colors[1].blue=255; Colors[2].name="black"; eachColor(printColor); }
For more,go to How do function pointers in C work?-Stackoverflow
时间: 2024-10-25 17:50:40