C语言 将 uint16 转换为 jint 并返回 JNI



everyone.我正在使用JNI在Android下写作。我需要将"间隔"作为 uint16 传递到我的 C foo() 中,但之后我使用相同的"间隔"返回 Java。

三:

 static jint func (JNIEnv* env, jobject object,jstring first)
        {
        /*...action...*/
        uint16  interval;
        jint result = foo (ifirst, &interval);
        return result < 0 ? result : interval;
        }

我在下面有错误

错误:操作数到 ?:具有不同类型的"jint {aka int}"和 'uint16* {aka short unsigned int*}'

如何使用"间隔"参数来避免错误并继续程序的正确工作?

根据代码,需要添加强制转换,以确保?:运算符的两个条件是相同的类型。

 static jint func (JNIEnv* env, jobject object,jstring first)
 {
    /*...action...*/
    uint16  interval;
    jint result = foo (ifirst, &interval);
    return result < 0 ? result : (jint)interval;
 }

最新更新