我们经常遇到这样的解析代码:
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);
阅读起来更改地简洁明了。