要从逻辑上删除一段C代码,更好的办法是用#if指令。
#if 0
statements
#endif
int *a;
*a = 12; //我们声明了这个指针变量,但从未对它进行过初始化,所以我们没办法预测12这个值将存储在哪里,所以这是非法指针
链表(linked list)就一些包含数据的独立数据结构(通常称为节点)的集合
FSM(finite state machine)是一个数学概念,它是一种协议,用于有限数量的子程序(状态)的发展变化,每个子程序进行一些处理并选择进入下一种状态。他特别适用于基于输入的在几个不同的可选动作中进行循环的程序尤其合适。如:投币售货机就具有“接收硬币”,“选择商品”,“发送商品”,“找零钱”几种状态。它的输入时硬币,输出是商品。
基本思路:用一张表保存所有可能的状态,并列出进入每个状态时可能执行的所有动作,其中最后一个动作就是计算下一个应该进入的状态,不停的在各种状态间转换,知道达到结束状态。
C中可以使用基于函数指针的数组来实现,如:声明:
void (*state[MAX_STATES])();
初始化: extern int a(), b(), c(), d();
int (*state[])() = {a,b,c,d};
用户1570367 2011-5-6 17:52