私はこれをGoogleに最善を尽くしましたが、型変換を示す表のような形式で明確な答えを見つけることができませんでした。
これらのタイプを変換したいのは、Android NDKを使用してネイティブコードから関数を呼び出すためです。問題は、ネイティブコードがJavaに存在しないさまざまな型を呼び出すことです。
私は実際にはCの経験がなく、コードをすばやく調べたところ、これらのいくつかのタイプが見つかりました。変換するさまざまなタイプを追加するには、この投稿を自由に編集してください。
From C to Java
long ->
short ->
char ->
unsigned long ->
unsigned short ->
unsigned char ->
byte ->
Int8 ->
Int16 ->
Int32 ->
UInt8 ->
UInt16 ->
UInt32 ->
また、これらのいずれかがJavaタイプに変換できない場合は、その理由を説明してください。
これらは同等であり、Javaのプリミティブデータ型のサイズは常に同じであることを念頭に置いて、Cのデータ型のサイズはある程度、コンパイラーおよびアーキテクチャー固有であり、@ millimooseで指摘されています。コメント。
また、char
データ型は「基本的な文字セットを含むことができるマシンの最小アドレス可能単位として定義されています。これは整数型です。実際の型は実装に応じて符号付きまたは符号なしのいずれかになります」、Javaでは単一16ビットUnicode文字。
long -> long
short -> short
char -> char
unsigned long -> N/A
unsigned short -> N/A
unsigned char -> N/A
byte -> byte
Int8 -> byte
Int16 -> short
Int32 -> int
UInt8 -> N/A
UInt16 -> N/A
UInt32 -> N/A
Javaでは、符号なしのプリミティブデータ型はありません。byte
型は8ビットで、使用するint
32ビット、short
16ビット、long
64ビット。
ここだリンクのJavaチュートリアルの関連するセクションに、そして、より詳細な説明のセクション§4.2のJava言語仕様は。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加