协议解析小窍门- readchar

来源:互联网 发布:信息与网络安全管理 编辑:程序博客网 时间:2024/05/16 15:40

我们经常遇到这样的解析代码:

unsigned char *pbuf = (unsigned char *)pbuf_in;

item1 = *pbuf;

pbuf++;

item2 = *pbuf;

pbuf++;


这里需要频繁地敲pbuf++,代码写起来,生怕忘了一个++,导致解析错误


一种好的解决办法,把解析某种类型数据直接做成readchar , readint这类的函数,将指针的指针作为参数传入

原型设计如下:

unsigned char readchar(unsigned char **pptr)
{
unsigned char c = **pptr;
(*pptr)++;
return c;
}


那我们的代码就可以直接这么写了:

unsigend char *pbuf = (unsigned char *)pbuf_in;

item1 = readchar(&pbuf);

item2 = readchar(&pbuf);


阅读起来更改地简洁明了。




0 0
原创粉丝点击