gpt4 book ai didi

java - jtype (JNI) 和 C/C++ 的类型有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 21:26:48 24 4
gpt4 key购买 nike

在 JNI 中有 jtypes。就像 jint 用于 intjboolean 用于 boolean。我知道后一种类型是 c/c++ types 。但是 type 是 jtype 吗?他们在书中提到这种类型也是一种原生类型。这是什么意思?

编辑:

jtype有什么用?

最佳答案

来自 jni.h ,

typedef unsigned char   jboolean
typedef unsigned short jchar
typedef short jshort
typedef float jfloat
typedef double jdouble
typedef long jint
typedef jint jsize

对于原生类型,它们并不意味着原生于 Java 语言,它们意味着原生 C 或原生机器等价物。 j 版本,帮助map Java types to native C types . 这种映射的优点是,熟悉基本 Java 类型的 Java 程序员可以继续使用相同的名称,只是添加了 j。他不需要理会它们是如何映射到机器的基本类型的。 typedef 会处理它。此外,如果底层机器架构发生变化,您仍然不必担心,只需更改 typedef 即可

解决您在评论中的顾虑,_jstring 是一个类。而jstring就是指向这个类的指针

class _jstring : public _jobject {};
typedef _jstring *jstring;

就像我们在C++中有String

关于java - jtype (JNI) 和 C/C++ 的类型有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10529087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com