现在的位置: 首页 > 综合 > 正文

代码摘要

2018年01月22日 ⁄ 综合 ⁄ 共 1042字 ⁄ 字号 评论关闭

1、函数指针应用,


void find_fun(void)
{
STU stu;
printf("in find_fun\n");
scanf("%s", stu.name);
getchar();
find_stu_db_get_table(db, &stu);
}

void print_fun(void)
{
printf("in print_fun\n");
//print_stu_db(db, "stu_info");
print_stu_db_get_table(db, "stu_info");
}

void cls_fun(void)
{
printf("in cls_fun\n");
system("clear");
}

void exit_fun(void)
{
printf("in exit_fun\n");
sqlite3_close(db);
exit(0);
}

void help_fun(void) 
{
printf("%s\n", help);
}

typedef void (*FUN)(void);   //定义的函数指针,
typedef struct cmd
{
char *cmd;  
FUN fun;
}CMD;

CMD cmd_list[ ] =   //这个数组的类型是CMD结构体类型、在这里我暂且认为给结构体赋初值
{
{"add", add_fun},
{"del", del_fun},
{"order", order_fun},
{"find", find_fun},
{"print", print_fun},
{"cls", cls_fun},
{"exit", exit_fun},
{"help", help_fun}
};

int main(int argc, char **argv)
{
char cmdbuf[20];

.....


while(1)
{
printf("student manger:");

fflush(stdout);

fgets (cmdbuf, sizeof(cmdbuf), stdin);
cmdbuf [strlen(cmdbuf)-1] = '\0';

for (i=0; i<sizeof(cmd_list)/sizeof(CMD); i++)
{
if (strcmp(cmdbuf, cmd_list[i].cmd) == 0)  // cmd_list[i].cmd就是和你输入的对比
{
cmd_list[i].fun(); //调用相应的函数
//continue;
}
}
//printf("no this command\n");
}
return 0;
}


现在只抄了一个,以后会继续摘下好的代码进行分享,

抱歉!评论已关闭.