我正在学习C++.我来自.NET和VB6的背景.
我对以下网页上关于布尔值的内容感兴趣:http://msdn.microsoft.com/en-us/library/ff381404(v = vs.85).aspx ie
"尽管有TRUE的这个定义,但是大多数返回BOOL类型的函数都可以返回任何非零值来表示布尔真值.因此,你应该总是这样写:
// Right way.
BOOL result = SomeFunctionThatReturnsBoolean();
if (result)
{
...
}
Run Code Online (Sandbox Code Playgroud)
"
这是否也适用于VB6,即是否存在问题:If BooleanValue = True Then?
Windows API旨在用于C程序.直到C99没有bool类型.并且仍然不完全,例如,C99从未被Microsoft编译器实现.因此,他们必须提出一种解决方法,与C编译器处理逻辑值的方式高度兼容.一个int,其中0表示false,其他任何条件都为true.因此建议.
VB6有一个专用的布尔类型和文字值True和False的关键字,因此不会有相同的问题.但是,对于写得不好的COM服务器,您仍会遇到麻烦.True的底层整数值为-1,与许多其他语言的逻辑布尔类型的实现高度不兼容.包括C.有一个很好的理由认为VB6是奇怪的,它的And和Or运算符不区分逻辑和算术和/或.通过使True等于-1而False等于0,没有区别.当COM服务器返回1以指示true而不是VARIANT_TRUE时,可能会出现问题.
但最重要的是,If booleanVariable = True Then对于许多程序员来说,写作只是丑陋而且钉在黑板上.只需写下If booleanVariable Then并完成它.
| 归档时间: |
|
| 查看次数: |
956 次 |
| 最近记录: |