Tôi đã làm hết sức mình với Google nhưng không thể tìm thấy câu trả lời rõ ràng trong biểu mẫu dạng bảng hiển thị các chuyển đổi loại.Loại Chuyển đổi từ C sang Java
Lý do tôi muốn chuyển đổi các loại này là vì tôi đang sử dụng NDK của Android để gọi các hàm từ mã gốc. Vấn đề là mã nguồn gốc gọi các kiểu khác nhau không tồn tại trong Java.
Tôi thực sự không có kinh nghiệm về C và đã tìm thấy một số loại này khi xem mã nhanh chóng. Vui lòng chỉnh sửa bài đăng này để thêm các loại khác nhau cần được chuyển đổi.
From C to Java
long ->
short ->
char ->
unsigned long ->
unsigned short ->
unsigned char ->
byte ->
Int8 ->
Int16 ->
Int32 ->
UInt8 ->
UInt16 ->
UInt32 ->
Ngoài ra, nếu bất kỳ loại nào trong số này không thể chuyển đổi thành loại Java, vui lòng giải thích lý do.
Android Dalvik VM là 32 bit chỉ VM, do đó, việc chuyển đổi sẽ là tầm thường. Xem thêm http://stackoverflow.com/a/11527544/841108 –
Các loại đã ký với chiều rộng được chỉ định sẽ ánh xạ thành 'byte',' short' và 'int' theo [trang Hướng dẫn Java] này (http: // docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html). Đối với những người khác, một cách để tìm ra sẽ là in ra những gì 'sizeof (long)' et al. cho bạn biết khi nào chạy trên thiết bị đích của bạn. (Độ rộng của các kiểu dữ liệu C là ở một mức độ nào đó cụ thể về trình biên dịch và kiến trúc.) – millimoose
Nhưng '' cung cấp các loại không thể tách rời của chiều rộng đã biết cho C99. –