java - JNI - 如何将 'jint' 参数转换为 'unsigned int' C 类型值

标签 java android c android-ndk java-native-interface

我有一个jni函数

native float nativeMethod(int num);

与 C 函数相关

void Java_com_package_name_nativeMethod(JNIEnv * env, jobject obj, jint num)
{
    unsigned int nativeUnsignedNum = num;
}

我的 C 代码需要使用无符号整数。我怎样才能使这项工作?使用上面的代码我得到一个错误:Using 'unsigned int' for signed values of type 'jint'。我如何将一个数字(它总是无符号/正数)从 Java 传递到 C 方法,并将该值分配给一个无符号整数?

谢谢!

最佳答案

转换:

unsigned int nativeUnsignedNum = (unsigned int)num; 

关于java - JNI - 如何将 'jint' 参数转换为 'unsigned int' C 类型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52461798/

相关文章:

java - Sum 运算符和 HashMap 对象作为结果

android - 如何在我的 android 应用程序中以编程方式打开 GPS?

android - 样式化 FacebookActivity 以避免糟糕的进度条

java - 快速提问(尝试看看我是否明白如何做到这一点)

java - 错误 - 从 java 代码运行 vbscript

Java HttpServlet 没有从 backbone.js 获取 GET/POST

java - Android:当 SAMPLERATE 设置为 44100 时,startRecording() 在未初始化的 AudioRecord 上调用

c - 使用 GDB 追踪埃拉托斯特尼筛法。怎样追踪比较好?

c - HTTP协议(protocol): end of a message body

java - 使用 Apache HttpClient 仅跳过主机名验证