运算符关键字 - !C ++中的含义(遵循上下文)
operator keyword - ! meaning in c++ (following context)
我知道当if(x!=value({...}时!=是什么,但是在以下上下文中它是什么意思:
if (! ReadConsoleInput(
hStdin, // input buffer handle
irInBuf, // buffer to read into
128, // size of read buffer
&cNumRead) ) // number of records read
ErrorExit("ReadConsoleInput");
或
if (! SetConsoleMode(hStdin, fdwMode) )
ErrorExit("SetConsoleMode");
或
if (! GetConsoleMode(hStdin, &fdwSaveOldMode) )
ErrorExit("GetConsoleMode");
它是
"Not"运算符:如果操作数为零,则为 true (1(,否则为 false(0(。
!
是LOGICAL NOT,即:if (! boolVar)
等于if (true != boolVar)
,if (! intVar)
等于if (0 == intVar)
如果你有一个函数foo()
在出错时返回 0,检查if (! foo())
基本上是检查函数是否成功,失败时输入括号。
当然,您必须确切地知道每个函数的返回值策略,没有关于它的法律或规则。
!
的意思是"逻辑不"...它反转了以下值的布尔意义(即测试以下值是否为假(。 如有必要,将首先将以下值转换为布尔值:0
以外的数字/指针值true
,0
(NULL( false
;类可以提供转换运算符,该运算符将提供可转换为bool
的bool
或数字/指针类型。 符合标准的编译器甚至允许您编写功能相同的代码:
if (not xyz...)
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- C++中的"inline"关键字
- #为""定义宏;静态";针对不同的上下文
- 如何确保C++函数在定义之前声明(如override关键字)
- 与互斥锁相比,旋转锁可以保证上下文切换
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- 谷歌模拟和覆盖关键字
- 错误"Could not find Boost"(缺少:上下文标头)
- 使用 mod_gsoap 部署服务时,如何在 Gsoap 中更改 soap 上下文的模式?
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 当我从下面的代码中删除关键字 virtual 时,它可以正常工作,否则会出现错误。在这里"virtual"字的意义是什么?
- 为什么"delete"关键字不删除节点?
- 在 c++ 中正确定义"this"关键字?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- 在 typedef 内部使用 const 关键字和在 typedef 外部使用 const 关键字之间有区别吗?
- 运算符关键字 - !C ++中的含义(遵循上下文)