最近发现一个绝大部分人没注意过的可能引起程序错误的问题,在vs2005和vs2010下测试过,请看下图:
大部分人会理所当然的认为(bool)2 == true这个表达式的值是true, 但在vs里面,bool 数据之间的相等比较,似乎用了int 数值。也就是说(bool)2 == (bool)1会返回false,虽然(bool)2和(bool)1都是true!
这个是工作之中碰到的一个case,记录一下。
本文探讨了在Visual Studio 2005和2010版本中,(bool)2==true这样的布尔值比较表达式实际上返回的是false,而非预期的true。此现象揭示了在VS中进行布尔类型间相等比较时,似乎采用了整型数值进行比较,这可能导致程序逻辑错误。
1567

被折叠的 条评论
为什么被折叠?