您好!
我尝试使用返回指针创建函数调用。
CCS X 会对其进行编译、但会出现警告。 代码工作正常、返回正确的值。
如果有任何建议可以取消警告、我们将不胜感激。
char *ptoa (int value, char base);
int
main (){
printf ("%s", ptoa (0x1234, 16));
return 0;
}
char *ptoa (int value, char base){
const char zString[] = "FEDCBA9876543210123456789ABCDEF";
static char result[16];
char *ptr = result, *ptr1 = result, tmp_char;
int tmp_value;
int init_value = value;
do{
tmp_value = value;
value /= base;
*ptr++ = zString[15 + (tmp_value - value * base)];
}
while (value);
if (tmp_value < 0)
*ptr++ = '-';
*ptr-- = '\0';
while (ptr1 < ptr){
tmp_char = *ptr;
*ptr-- = *ptr1;
*ptr1++ = tmp_char;
}
return result;
}
UPD:我尝试了 char *结果而不是 char 结果[],该函数不会返回正确的值。