13楼的方法不是不懂,与建立上百个函数直接操作全局变量相比(不然传入指针去操作更麻烦),我更喜欢一个很长的switch-case……尽管代码很长,只要理解了模型,你就会认为它其实很简单。
两种方法的区别类似状态机的横式与竖式写法的却别。
//addr,cmd,len,data,checksum
switch(cmd)
{
case _Cmd_Read://
{
……
break;
}
case _Cmd_Write://
{
……
break;
}
……
default:
{
……
break;
}
}
以上写法我觉得简单明了,再长也不会令人觉得难以理解(只要保持良好习惯,case列表和命令宏定义列表一致)。结合代码折叠功能浏览起来更方便。
类似如果象MFC那样,一个简单的函数封装十几遍,不停的点右键“goto xxxxxx define”,烦透了还没看到目标,看完目标了又要为回到最开始的地方而烦恼了。
|