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;
}