私はjniを使ってjavaとcの間の値を渡すコードを書いています。現在、すべての数字はint型(Java)のように定義されているどのJNIデータ型ですか?
- > jnit(JNI/C) - > unsigned int型(C)
コード作品ではなく、すべての数字というパスが必要なので、それは本当に非効率的です整数に利用可能なメモリ。
私はすべて3「言語」間で互換性のあるデータ型をうまくすることはできません1.
に255と0に4294967295から0、0の範囲私は数を保持する必要が私のコードの値の3種類があります。
Range Java C/JNI C
4294967296 int jint unsigned int
256 ??? ??? unsigned char
2 boolean jboolean ???
あなたは上記のようにどのデータタイプを使用する必要がありますか?
おかげ G
32ビット値で動作するいくつかのアーキテクチャ(特にARM)では、16/8ビットのものよりも高速です。したがって、私たちが話しているストレージスペースでない限り、 'int' /' jint'としてパラメータを渡すことは、純粋な勝利かもしれません。 –