1、结构体数组的妙用可以巧妙的实现一个功能模块的调用
1)、将需要关联的变量和数据放到一个结构体里面。
2)、通过给结构体添加一个枚举实现对于结构体里面其他数据的快速遍历。
3)、结合switch的形式来实现对于结构体的数据进行灵活调用。
结构体和枚举:
typedef enum {
CMD1
CMD2
} CMD;
typedef struct
{
CMD cmd_index;
string cmd_str;
}CMD_TYPE;
数据的注册:
static CMD_TYPE Cmdcont[] =
{
{CMD1,“abc”},
{CMD2,“efg”},
};
const static int Cmdlen = sizeof(Cmdcont)/sizeof(Cmdcont[0]);
遍历的实现:
//截取上报上来的数据然后放到string里面。
int index = output.content.find("a ");
string.assign(output.content,1,(index-1));
for(i = 0;i < Cmdlen; i++)
{
if( 0 == Cmdcont[i].cmd_str.compare(string))
{
switch(Cmdcont[i].cmd_index)
{
case CMD1:
{
//fun()1
}
break;
case CMD2:
{
//fun()1
}
break;
default:
break;
}
}
break;
}
这样就实现了对于各种上报上来的数据,通过关键字的形式实现匹配和修改。而且不会影响其他的数据。而且方便后面的关键字直接进行匹配并操作。