C语言中的两个!号

在看内核代码的时候,经常会看到在返回一个值时,会在一个表达式前面加两个感叹号, google了一下,两个感叹号的原因是将非零值变成1, 零不变。

比如:

!!5 = 1.

!!0 = 0.