微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型将变量从jBoolean强制转换为bool

如何解决类型将变量从jBoolean强制转换为bool

| 当使用JNI在Java和C之间进行接口时,javah会将Java中的布尔值解析为JNI头文件中的
jBoolean
。当我在C文件中使用ѭ1时,Visual Studio编译器会引发警告   警告C4800:\'jboolean \':强制将值设置为bool \'true \'或\'false \'(性能警告) 还有其他应使用的数据类型吗?或者,如果
bool
是这里唯一的数据类型,那么我可能会遇到什么性能问题?     

解决方法

        “性能问题”是演员表并非完全免费。强制转换为
bool
本质上意味着将所有非零值强制为
1
,这需要一点代码,而不是像“ free \”强制转换那样将
char
扩展到
int
。 “性能问题”是一些额外的机器说明。如果您要在一圈紧紧地做一百万遍,那么好吧,也许您在乎-否则,您根本不需要在乎。这是IMO愚蠢的编译器警告;小小的增加的成本只是使用ѭ1时所做的折衷的一部分,编译器不应为此而烦恼。     ,        尝试强制转换为BOOL。您可能还会发现此线程很有趣:bool和BOOL之间的区别。 我不太确定这是您要寻找的东西。 BOOL是16位,而不是8位。如果可以,那么它比bool更接近您要查找的内容。否则,您可以使用字节。请注意,如果最终还是强制转换为其中任何一个,则将无法再执行== true。我在提供的链接中也对此进行了说明。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。