結構體 裏面的 函數指針

結構體裏面的函數指針,結構體成員初始化的時候,函數指針成員被指向函數,從而可以調用函數。

#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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章