《Java native 接口(interface)程序员指南和规范》一书的第 3 章说“基本类型的映射很简单”,我对这句话有点困惑。 我们知道c数据类型的大小是不确定的,它取决于程序运行、编译的环境... 比如int类型的大小可能是2字节或者4字节。 但是java数据类型的大小是确定的,int的大小是4个字节。
那么,jni如何清晰地映射java和c/c++之间的数据类型。
任何答案将不胜感激!
最佳答案
嗯,在 C 语言中,有一个名为 stdint.h
的模块它定义了类型 int64_t
、int32_t
和 friend ,这确实使映射变得“简单”。
但是您注意到,在任何特定的 C 实现中,普通旧 int
的大小都没有准确指定。作者确实对“直接”这个词相当宽松,并假设您会将该声明理解为“Java 的 int
映射到 32 位的 C 有符号整数类型。”
关于java - Java 编程语言中的数据类型如何映射到 native 编程语言(例如 C 和 C++)中的数据类型,具体来说,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19217785/