C语言33行代码简单实现Shell

Shell:引导程序框架,使用结构体和回调函数的方式可以简单的实现Shell,代码难度系数不高

以下是我自己写的一个小例子(附件为linux下编译生成的可执行文件)

代码:

#include <stdio.h>
typedef void (*back_way)(void);//函数类型
void A(void){printf("AAA\n");}//函数指针A
void B(void){printf("BBB\n");}//函数指针B


typedef struct func_
{
const char name;//命令名
back_way func;//命令函数指针
}func_t;
const func_t func_sel[]=  //匹配数组
{
{'A',A},{'a',A},
{'B',B},{'b',B},
{0,0},
};
const func_t* func_find(const char name)//匹配函数
{
int i = sizeof(func_sel)/sizeof(func_sel[0]);
int j = 0;
for(; j < i; j++)
if(func_sel[j].name == name)
return &func_sel[j];//找到就返回
return (const func_t*)0;//找不到返回0
}


int main()
{
char name = 'a';
const func_t *p = func_find(name);//匹配函数
if(p)p->func();//调用函数显示结果
return 0;
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还,或热爱钻研,亦可在此项目代码基础上进修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值