2021年12月11日15:10:18 星期六
问题:
用16进制格式打印buf中每个字节,每行打印16个字节。
思路
每次从buf中取 16 字节,
然后逐个打印这16个字节。
直到打印结束为止。
先画流程图,可以把逻辑搞清楚。

代码
void byte_print(unsigned char *buf, size_t len)
{
const unsigned char *c = buf;
if(NULL == buf)
return;
printf("Dumping %zu bytes from %p:\n", len, buf);
while(len > 0)
{
unsigned int i;
for (i = 0; i < 16; i++)
{
if (i < len)
printf("%02x ", c[i]);
}
printf("\n");
c += 16;
if (len <= 16)
break;
len -= 16;
}
}
网友评论