mkn*_*mkn 2 c java-native-interface casting uint64
我正在为C代码编写一个java绑定,我对C不是很熟悉.
我有一个uint64_t,需要将它转换为int.有谁知道这是怎么做到的吗?(我的绑定然后返回一个jint ...)
简短的回答:
uint64_t foo;
int bar;
bar = foo;
Run Code Online (Sandbox Code Playgroud)
从技术上讲,如果值foo不适合,则会出现未定义的行为int.在实践中,它总是简单地截断高位.如果你想更正确,那么:
if (foo-INT_MIN <= (uint64_t)INT_MAX-INT_MIN)
bar = foo;
else
/* error case here */
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14218 次 |
| 最近记录: |