什么意思!! 在C - 为什么需要它?

Jee*_*tel 1 c equation not-operator

可能重复:
C++代码中的双重否定

在阅读我读到的一个代码时:

flush = ! !(flags & GST_SEEK_FLAG_FLUSH);
Run Code Online (Sandbox Code Playgroud)

我没有得到!!这里的意思.这句话怎么办?

编辑:

我得到了它的双重否定.将非bool数据转换为bool的技巧

但那有什么需要呢?这里冲洗是bool然后如果你将任何非零项目分配给bool它会将1和零项目视为0,所以这样做有什么好处?

Jim*_*uck 9

这是一个双重否定.这是一种将非bool表达式(例如flags & GST_SEEK_FLAG_FLUSH)转换为a的方法bool.我个人更喜欢:

flush = (flags & GST_SEEK_FLAG_FLUSH) != 0;