多个结构体的函数应用
来源:互联网 发布:ip端口打开失败 编辑:程序博客网 时间:2024/06/09 17:35
#include <stdio.h>#include <malloc.h>#include <memory.h>#include <assert.h> typedef struct people_name { void (*name)();}people_name; typedef struct tell{ void (*tell)();}Ptell;void show_name(){ printf("4M小水管");}void his_tell(){ printf("说:我靠\n\n");}typedef struct call{ people_name* Ppeople_name ; Ptell* tell; void (*ll_call)(struct all* pPlaza); }Pcall;void ll_call(struct call* pcall) { assert(NULL != pcall); pcall->Ppeople_name->name(); pcall->tell->tell(); } int main(){ Ptell*ll_tell; Pcall *call; people_name* Ppeople_name ; ll_tell = (Ptell*)malloc(sizeof(Ptell)); assert(NULL != ll_tell); memset( ll_tell, 0, sizeof( Ptell)); call = (Pcall *)malloc(sizeof(Pcall)); memset( call, 0, sizeof( Pcall)); ll_tell->tell=his_tell; call->tell=ll_tell; call->tell->tell=ll_tell->tell; Ppeople_name = (people_name*)malloc(sizeof(people_name)); assert(NULL != Ppeople_name); memset( Ppeople_name, 0, sizeof( people_name)); Ppeople_name->name=show_name; call->Ppeople_name=Ppeople_name; call->Ppeople_name->name=Ppeople_name->name; ll_call( call); return 0;}