-1

みんな。JNIを使​​用してAndroidで書いています。「間隔」を C foo() に uint16 として渡す必要がありますが、その後、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*}'

「interval」引数を使用してエラーを回避し、プログラムの正しい作業を続行するにはどうすればよいですか?

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 に答える