x =!x是什么意思?

时间:2015-01-25 18:16:43

标签: c ghostscript mupdf

阅读MuPDF时遇到了源代码行

x = !x;

想知道上面的代码是做什么的?

编译时也会出错

assuming signed overflow does not occur when simplifying 
condition to constant [-Werror=strict-overflow ]

2 个答案:

答案 0 :(得分:5)

!x将评估为01,具体取决于x的值。

  • 如果x0,则评估为1
  • 否则,评估为0

答案 1 :(得分:1)

假设x是布尔值,如果为真,则设置x false,如果为假,则设置为true。