結構體裏面的函數指針,結構體成員初始化的時候,函數指針成員被指向函數,從而可以調用函數。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef void (*FunType_void_void)();
typedef void (*FunType_intpchar_void)(int ,char *);
typedef struct student
{
int id;
char name[50];
FunType_void_void initial;
FunType_intpchar_void process;
FunType_void_void destroy;
}stu;
void initial()
{
printf("initialization...\n");
}
void process(int id, char *name)
{
printf("process...\n%d\t%s\n",id, name);
}
void destroy()
{
printf("destroy...\n");
}
int main()
{
stu stu1;
stu1.id=1000;
strcpy(stu1.name,"C++");
stu1.initial=initial;
stu1.process=process;
stu1.destroy=destroy;
printf("%d\t%s\n",stu1.id,stu1.name);
stu1.initial();
stu1.process(stu1.id, stu1.name);
stu1.destroy();
free(&stu1);
return 0;
}