本帖最后由 叶孤城999 于 2020-4-9 17:04 编辑
初学哈
逻辑是在一个数组中,找到相邻的1\0\1这三个数字,找到则输出FIND,没找到不用动作。
执行代码如下:
- void Function(void)
- {
- uint8 temp[]={2,1,3,1,21,1,0,1,0,1,10,12,'\n'};
- uint8 flag=0;
- uint8 *p=temp;
- do
- {
- switch(flag)
- {
- case STATE_0:
- printf("*p=%d STATE_0\n",*p);
- flag = (1==(*p)) ? STATE_1:STATE_0;
- break;
- case STATE_1:
- printf("*p=%d STATE_1\n",*p);
- flag = (0==(*p)) ? STATE_2:STATE_0;
- break;
- case STATE_2:
- printf("*p=%d STATE_2\n",*p);
- flag = (1==(*p)) ? STATE_3:STATE_0;
- break;
- case STATE_3:
- printf("*p=%d STATE_4\n",*p);
- printf("FIND '101' !\n");
- return;
- }
- p+=1;
- }while(('\n')!=*p);
- }
复制代码
|