将jdouble转换为c类型的double

pro*_*eve 6 c java java-native-interface

如何将jdoublejava类型变量转换为doublec 类型的变量?

unw*_*ind 7

你不必,它只是一个类似于这样的typedef:

typedef double jdouble;
Run Code Online (Sandbox Code Playgroud)

所以不需要转换,一旦你拥有了,jdouble你就可以像对待它一样对待它double.

例如,参见Standford的这个代码示例:

JNIEXPORT jdouble JNICALL Java_Summer_sum__DD
(JNIEnv *env, jobject jobj, jdouble j1, jdouble j2) {
    return j1 + j2;
}
Run Code Online (Sandbox Code Playgroud)

添加是直接使用jdouble值完成的,信任编译器以确定如何生成所需的代码.

  • @program-o-steve:一般来说,没有。Java 类型有预先指定的宽度,而 C 类型没有。换句话说,Java 的 `int` 总是 32 位,而 C 的 `int` 不是。 (2认同)