Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JNI本机方法返回既不是JNI_FALSE也不是JNI_TRUE的jboolean_Java_Java Native Interface_Boolean - Fatal编程技术网

Java JNI本机方法返回既不是JNI_FALSE也不是JNI_TRUE的jboolean

Java JNI本机方法返回既不是JNI_FALSE也不是JNI_TRUE的jboolean,java,java-native-interface,boolean,Java,Java Native Interface,Boolean,如果本应返回布尔值(本机类型jboolean)的JNI本机函数返回的值既不是JNI_FALSE(0),也不是JNI_TRUE(1),是否定义了Java应该如何解释该值 对于两个不同版本的Java,我观察到从本机函数返回后出现了一些奇怪的情况,该函数执行以下操作: JNIEXPORT jboolean JNICALL Java_Class_function(JNIEnv* env, jobject obj) { return 2; } 这是未定义的行为。不要这样做。这是未定义的行为。不要

如果本应返回布尔值(本机类型jboolean)的JNI本机函数返回的值既不是JNI_FALSE(0),也不是JNI_TRUE(1),是否定义了Java应该如何解释该值

对于两个不同版本的Java,我观察到从本机函数返回后出现了一些奇怪的情况,该函数执行以下操作:

JNIEXPORT jboolean JNICALL
Java_Class_function(JNIEnv* env, jobject obj)
{
    return 2;
}

这是未定义的行为。不要这样做。

这是未定义的行为。不要这样做。

有什么问题?通常false为0,true为其他值。问题是什么?典型的false是0,true是其他任何东西。详细说明:Java可以将表达式计算为
(val==1)
,或者作为
(val!=0)
,或者作为
(val@david
(val|1)
(val@code>)没有意义,也没有使用移位进行计算。详细说明:Java可以将表达式计算为
(val==1)
,或as
(val!=0)
,或as
(val | 1)
,或as
((val@david
(val | 1)
)没有意义,换档时也没有意义。