我正在尝试将以下函数转换为 Objective-C:
private static byte[] convertByteArray(int p_int) {
byte[] l_byte_array = new byte[4];
int MASK_c = 0xFF;
for (short i = 0; i <= 3; i++) {
l_byte_array[i] = (byte) ((p_int >> (8 * i)) & MASK_c);
}
return l_byte_array;
}
我已经尝试过:
-(char *)convertByteArray:(int)p_int
{
const char *l_byte_array[4];
int MASK_c = 0xFF;
for (short i = 0; i <= 3; i++) {
l_byte_array[i] = (char *) ((p_int >> (8 * i)) & MASK_c);
}
return l_byte_array;
}
但我猜那是不正确的......
更新:
如果我尝试不使用 const:
-(char *)convertByteArray:(int)p_int
{
char *l_byte_array[4];
int MASK_c = 0xFF;
for (short i = 0; i <= 3; i++) {
l_byte_array[i] = (char *) ((p_int >> (8 * i)) & MASK_c);
}
return l_byte_array;
}
我的退货声明收到两个警告:
- 与返回的局部变量 '' 关联的堆栈内存地址
- 从结果类型为 char * 的函数返回 char[4] * 的不兼容指针类型