函数封装:16进制打印unsigned char *p指向的内存,长度为int l。16个字节,换一次行。16个字节用一个字符串缓存,一次打印。
以下是一个使用函数封装的C语言代码,用于以16进制格式打印unsigned char *p
指向的内存,长度为int l
,每16个字节换一次行,并且使用一个字符串缓存16个字节,一次性打印:
#include <stdio.h>
#include <string.h>
void printMemoryHex(unsigned char *p, int l) {
int count = 0;
char buffer[16 * 3 + 1]; // 缓存16个字节的16进制字符串
for (int i = 0; i < l; i++) {
sprintf(buffer + count * 3, "%02X ", p[i]);
count++;
if (count == 16) {
// 一次性打印16个字节的16进制字符串
printf("%s\n", buffer);
count = 0