-1

每个人。我正在使用 JNI 在 Android 下编写。我需要将一个“间隔”作为 uint16 传递到我的 C foo() 中,但之后我使用相同的“间隔”来返回 Java。

C:

 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*}'

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

4

1 回答 1

1

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

 static jint func (JNIEnv* env, jobject object,jstring first)
 {
    /*...action...*/
    uint16  interval;
    jint result = foo (ifirst, &interval);
    return result < 0 ? result : (jint)interval;
 }
于 2014-02-27T13:38:02.593 回答