〜(uint32_t)是什么意思?

Cha*_* Ma 2 c syntax

我在OS内核中读到了一些C代码

x & ~(uint32_t)CST_IEc;
Run Code Online (Sandbox Code Playgroud)

什么~()意思?这是一个代字号,后面是括号!

Lau*_*nis 19

~() 实际上是两件事:

  1. (uint32_t) 是一个演员.
  2. ~ 是一个按位补码运算符.


And*_*bel 10

还有一些用于清除评估顺序的parantheses:

(x & (~((uint32_t)CST_IEc)))
Run Code Online (Sandbox Code Playgroud)

首先CST_IEc是一个被输入到一个uint32_t然后它被逐位否定与~之前被逐位地x通过&.