运算符关键字 - !C ++中的含义(遵循上下文)

operator keyword - ! meaning in c++ (following context)

本文关键字:上下文 关键字 运算符      更新时间:2023-10-16

我知道当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以外的数字/指针值true0 (NULL( false ;类可以提供转换运算符,该运算符将提供可转换为boolbool或数字/指针类型。 符合标准的编译器甚至允许您编写功能相同的代码:

if (not xyz...)