次の関数を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;
}
Return Statement で 2 つの警告が表示されます。
- ローカル変数 '' に関連付けられたスタック メモリのアドレスが返されました
- char[4] を返す互換性のないポインタ型 * 結果型が char の関数から *