fsminit.c
来自「linux网络编程实例程序 socket程序 适合初学者。」· C语言 代码 · 共 41 行
C
41 行
/* fsminit.c - fsminit */#include <sys/types.h>#include <stdio.h>#include "tnfsm.h"#define TINVALID 0xff /* an invalid transition index *//*------------------------------------------------------------------------ * fsminit - Finite State Machine initializer *------------------------------------------------------------------------ */intfsminit(unsigned char fsm[][NCHRS], struct fsm_trans ttab[], int nstates){ struct fsm_trans *pt; int sn, ti, cn; for (cn=0; cn<NCHRS; ++cn) for (ti=0; ti<nstates; ++ti) fsm[ti][cn] = TINVALID; for (ti=0; ttab[ti].ft_state != FSINVALID; ++ti) { pt = &ttab[ti]; sn = pt->ft_state; if (pt->ft_char == TCANY) { for (cn=0; cn<NCHRS; ++cn) if (fsm[sn][cn] == TINVALID) fsm[sn][cn] = ti; } else fsm[sn][pt->ft_char] = ti; } /* set all uninitialized indices to an invalid transition */ for (cn=0; cn<NCHRS; ++cn) for (sn=0; sn<nstates; ++sn) if (fsm[sn][cn] == TINVALID) fsm[sn][cn] = ti;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?