我知道什么!= if 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");
答案 0 :(得分:8)
它是“Not”运算符:如果操作数为零,则为true(1),否则为false(0)。
答案 1 :(得分:3)
!
是LOGICAL NOT,即:if (! boolVar)
等于if (true != boolVar)
,if (! intVar)
等于if (0 == intVar)
如果你有一个错误返回0的函数foo()
,检查if (! foo())
基本上是检查函数是否成功,失败时输入括号。
当然,您确切地知道每个函数的返回值策略,没有关于它的法律或规则。
答案 2 :(得分:0)
!
表示“逻辑 - 不”......它反转以下值的布尔意义(即测试以下值为false)。如有必要,以下值将首先转换为布尔值:除0
以外的数字/指针值为true
,0
(NULL)为false
;类可以提供转换运算符,该运算符将提供bool
或可转换为bool
的数字/指针类型。符合标准的编译器甚至允许您编写功能相同的代码:
if (not xyz...)