UCOS之任务控制块练习

#include <stdio.h>
#include <string.h>


typedef struct tcb{   //定义了结构体,并且用别名 TCB代表struct tcb
    char *code_name;
    int p;
    int v_num;
    void (*fun)();

}TCB;

void function1()
{
char i;
for(i=0;i<10;i++)
printf("11111111\n");
}

void function2()
{
char i;
for(i=0;i<10;i++)
printf("2222222\n");
}

void function3()
{
char i;
for(i=0;i<10;i++)
printf("333333\n");
}

TCB creat(char *name,int pp,int vnum,void (*fun)()) //创建结构体类型的函数creat()
{  //因为后面用到的tabTbl[]数组的类型都是TCB型的,且tabTbl[0] = creat("F1",1,2,function1);
   //所以函数creat()以及它的返回值都应该是TCB类型的
TCB tcb;
tcb.code_name = name;
tcb.p = pp;
tcb.v_num = vnum;
tcb.fun = fun;
return tcb;
}

main()
{
    char code_name[10];
    int t=0,i;
    TCB tabTbl[3];   //这个是一个结构体的数组,有3个元素,每个元素都是一个结构体
    tabTbl[0] = creat("F1",2,1,function1);
    tabTbl[1] = creat("F2",2,4,function2);
    tabTbl[2] = creat("F3",4,5,function3);
    printf("Input codename:");
    scanf("%s",code_name);
    for(i=0;i<3;i++)
    {

    if(strcmp(tabTbl[i].code_name,code_name)==0)   
    {//比较两个数tabTbl[i].code_name和code_name是否相同,相当返回0,不同返回其它值
    tabTbl[i].fun();  //调用任务控制里所指向的用户程序
    t=1;
    }

    if((i==2)&&(t==0))printf("No %s\n",code_name);
    //getchar();
    }
    getchar();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值