令人惊讶的是,我
byte上周第一次使用Java,所以确实有一个(尽管不寻常的)用例。我正在编写一个本机Java函数,该函数使您可以在Java可以调用的库中实现一个函数。Java类型需要转换为本地语言类型,在这种情况下为C
该函数需要采用字节数组,但是(当时
byte完全忘记了类型)我采用了
char[]。Java为C函数生成的签名将参数的类型指定为
jcharArray,可以将其转换为一堆
jchars,将其类型定义
jni.h为
unsignedshort。自然地,它的大小是不一样的-
它是2个字节而不是1个字节。这引起了基础代码的各种问题。使Java类型
byte[]产生
jbyteArray,然后
jbyte在Linux上将typedef定义为
signedchar,这是正确的大小
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)