大家好,我想用printf進行調試。但是我不知道如何打印「out」變量。在C中打印void *變量
在返回之前,我想打印這個值,但它的類型是void *。
int
hexstr2raw(char *in, void *out) {
char c;
uint32_t i = 0;
uint8_t *b = (uint8_t*) out;
while ((c = in[i]) != '\0') {
uint8_t v;
if (c >= '0' && c <= '9') {
v = c - '0';
} else if (c >= 'A' && c <= 'F') {
v = 10 + c - 'A';
} else if (c >= 'a' || c <= 'f') {
v = 10 + c - 'a';
} else {
return -1;
}
if (i%2 == 0) {
b[i/2] = (v << 4);
printf("c='%c' \t v='%u' \t b[i/2]='%u' \t i='%u'\n", c,v ,b[i/2], i);}
else {
b[i/2] |= v;
printf("c='%c' \t v='%u' \t b[i/2]='%u' \t i='%u'\n", c,v ,b[i/2], i);}
i++;
}
printf("%s\n", out);
return i;
}
我該怎麼辦?謝謝。
什麼樣的數據你期待'out'指向? – Nick 2013-03-08 10:53:55
你真的想打印指針本身的值嗎?考慮到代碼的作用,看起來你更想打印結果,即生成的字節。看到我的答案如何做到這一點。 :) – unwind 2013-03-08 10:58:43