Xin chào tất cả Tôi muốn thực hiện gỡ lỗi với printf. Nhưng tôi không biết cách in biến "out".In biến void * trong C
Trước khi trở về, tôi muốn in giá trị này, nhưng loại của nó bị vô hiệu *.
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;
}
Tôi làm cách nào? Cảm ơn.
Bạn mong muốn 'out' trỏ đến loại dữ liệu nào? – Nick
Bạn có thực sự muốn in chính giá trị con trỏ không? Xem xét mã nào, có vẻ như bạn muốn in kết quả, tức là các byte được tạo. Xem câu trả lời của tôi về cách làm điều đó. :) – unwind