通过强制转换修复下面的警告是否安全,或者我可以简单地更改原型以返回 au_char
吗?
警告:从结果类型为 'char *' 的函数返回 'u_char [256]' 在指向具有不同符号的整数类型的指针之间转换 [-Wpointer-sign]
char * whatever(unsigned char *text)
{
static u_char retval[256];
int pos = 0;
*retval = 0;
if (!text)
return retval;
for (; *text && (pos < 254); text++, pos++) {
if (*text < 32) {
retval[pos++] = '^';
retval[pos] = *text + 64;
} else if (*text == 127) {
retval[pos++] = '^';
retval[pos] = '?';
} else
retval[pos] = *text;
}
retval[pos] = 0;
return retval;
}
我也对其他可能性持开放态度。