“(void)!ptr”做什么?

时间:2013-04-16 01:46:30

标签: c++

我在阅读pugixml源代码时看到了它,我真的不知道为什么会这样。

void foo(void* ptr) {
    (void)!ptr;  // What does this line do?
}

1 个答案:

答案 0 :(得分:9)

(void)ptr;是一种抑制“未使用参数”警告的常用方法,当函数签名需要包含比函数使用的参数更多时,这可能是必要的(例如,在回调中,如果'用户数据'参数未使用)。

!对我来说是新的,虽然在这种情况下它是多余的,因为返回值只是扔掉了。