SWIG Wrapping for uint8_t和uint16_t

时间:2012-02-10 18:33:38

标签: swig

根据SWIG Documentation(21.9.1默认基元类型映射),C uint8_t映射到16位的Java short,C uint_15_t映射到32位的Java int。我相信C函数分别是8位和16位,为什么SWIG在用Java包装时会加倍?

1 个答案:

答案 0 :(得分:1)

问题是Java类型总是签名。

因此,如果你有一个从0到255的无符号C类型,那么可以代表该范围上半部分的最小Java类型就是短。

另一种方法是你转移或以某种方式转换你的uint8_t以使用Java byte的负面部分,但其语义是非常违反直觉。