Bal*_*ash 11 c java java-native-interface boolean
当使用JNI在Java和C之间进行接口时,javah将Java jBoolean中的布尔值解析为JNI头文件.当我bool在C文件中使用时,Visual Studio编译器会发出警告
警告C4800:'jboolean':强制值为bool'true'或'false'(性能警告)
是否应该使用其他任何数据类型?或者,如果bool这里是唯一的数据类型,那么我可能遇到的性能问题究竟是什么?
Ern*_*ill 11
"性能问题"是演员阵容不是完全免费的.转换bool本质上意味着强制所有非零值1,这需要一点点代码,而不是像"扩展"那样的"自由" char转换int."性能问题"是一些额外的机器指令.如果你在一个紧密的循环中这样做了一百万次,好吧,也许你在乎 - 否则,不,你根本不应该在意.这是IMO一个愚蠢的编译器警告; 这个小的附加成本只是你在使用时做出的折衷的一部分,bool编译器不应该打扰你.