gpt4 book ai didi

java - 为什么通过 JNI 在 Java 和 C++ 之间传递不正确的值?

转载 作者:行者123 更新时间:2023-11-30 02:55:26 25 4
gpt4 key购买 nike

我想使用 JNI 将 double 值从 C++ 传递到 Java (Android)。

相关C++代码:

JNIEXPORT jdouble JNICALL
Java_test_MPEG_DASH_ffmpeg_PlayerUI_Notif(JNIEnv* env, jobject obj,jint st){

jdouble p=receiver->buffer->Notify();
LOGI("Notifyyyyyyyyy from jni is %d ",p);
return p;
}

显示 35、36 等

Java调用native方法访问时,返回错误值:0.0000133333

相关Java代码:

double buf=Notify();
Log.d(TAG, "Bufffffffffffffffffffffffffer :"+buf" ms");

为什么值不一致?

最佳答案

“%d”不是与浮点类型兼容的格式说明符。如果您使用它,您将强制错误解释包含 jdouble 的位,并打印不正确的值。

很可能返回给 Java 的值是正确的(那里有相当多的类型强制),并且记录的值不正确。

关于java - 为什么通过 JNI 在 Java 和 C++ 之间传递不正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16462742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com