8079|0

367

帖子

0

TA的资源

裸片初长成(高级)

楼主
 

通过结构体和函数指针进行菜单操作的一个实例 [复制链接]

前天帮同学写了一个菜单,感觉对不太了解函数指针的同学来说有点借鉴意义,原程序如下,可以直接放在vc++6.0环境下运行,移植到单片机上也是非常的简单的! 程序如下: \\------------------------------------------------------------------------------- #i nclude<stdio.h> void fun0(void){ printf("\tYou are right!\n\tHere is fun0()!\n"); } void fun1(void){ printf("\tYou are right!\n\tHere is fun1()!\n"); } void fun2(void){ printf("\tYou are right!\n\tHere is fun2()!\n"); } void fun3(void){ printf("\tYou are right!\n\tHere is fun3()!\n"); } void fun4(void){ printf("\tYou are right!\n\tHere is fun4()!\n"); } void fun5(void){ printf("\tYou are right!\n\tHere is fun5()!\n"); } struct { //声明一个结构体 void (*fun)(void); //声明一个函数指针 char *tip; }CmdTip[] = { //结构体初始化 { fun0, "fun0() test"}, { fun1, "fun1() test"}, { fun2, "fun2() test"}, { fun3, "fun3() test"}, { fun4, "fun4() test"}, { fun5, "fun5() test"}, { 0, 0} }; void main(void){ int idx,i; while(1){ printf("\n\n\n\t=====================\n"); printf("\t| 菜单 |\n"); printf("\t---------------------\n"); for(i=0; CmdTip.fun!=0; i++) printf("\t| %2d: %s |\n", i, CmdTip.tip); printf("\t=====================\n\n"); printf("请输入一个菜单编号并按ENTER键:"); scanf("%d",&idx); if(idx<i) { (*CmdTip[idx].fun)(); } else printf("\t你输入了一个错误的数字:%d;请重新输入!\n", idx); } } \\-------------------------------------------------------------------------------
此帖出自单片机论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电源解决方案和技术 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表