那个 C 的 int 是和 Java 的 int 直接对应的么?
在 Java 中 int 是固定32位的。
C 的 char 是多少位的?Java 中 char 是无符号2字节,byte[] 是有符号 1 字节。
我试了一个 JNI 把下面 Java 编译了一下得到 C 的 Header 文件。
public class HelloN
{
public native int hello1(int a, byte[] b);
public native int hello2(short a, char[] b);
public native int hello3(long a, int[] b);
}
...
JNIEXPORT jint JNICALL Java_HelloN_hello1
(JNIEnv *, jobject, jint, jbyteArray);
JNIEXPORT jint JNICALL Java_HelloN_hello2
(JNIEnv *, jobject, jshort, jcharArray);
JNIEXPORT jint JNICALL Java_HelloN_hello3
(JNIEnv *, jobject, jlong, jintArray);
...
JNI 中关于类型的样例: