Еще один способ сделать это - обратиться к своим данным как void*
, а затем - к unsigned char*
и распечатать все как шестнадцатеричные байты. Я обнаружил, что это действительно полезно, когда приходится иметь дело с смежными байтами, где их использование еще не известно.
Однако этот метод требует, чтобы у вас был способ узнать, как долго ваши данные, поскольку нет способа вызвать sizeof
для данных произвольного типа.
#include <stdio.h>
int main() {
char name[16] = "hello there";
void* voidBuffer = name;
unsigned char* buffer = voidBuffer;
int i;
for (i=0; i<16; i++) {
printf("%x ", (unsigned int)buffer[i]);
}
return 0;
}
Это выдаст 68 65 6c 6c 6f 20 74 68 65 72 65 0 0 0 0 0
.