什么是"(void)指针;" 用c ++表示?

Nea*_*ear 4 c++ pointers

有一些c ++代码

struct data {
    /* some fields */
};

typedef struct data * pData;

int function(pData pointer) {
    if(pointer == NULL)
        return ERROR;
    (void)pointer;
    /* other work */
}
Run Code Online (Sandbox Code Playgroud)

"(void)指针"是什么意思?

仅供参考,有一些int/char*/etc,一些函数指针在结构中用作回调函数.

kay*_*kay 10

它用于规避未使用的变量警告.

如果你确实使用了这个变量,那就是无操作.

大多数未使用的变量是参数,它们是实现回调函数签名所必需的,但在实际实现中不需要.

参看

更新:

仅仅因为没有提到它:变量的类型可能是任何东西.它不受指针类型的限制.


unw*_*ind 6

这并不意味着很多.

它计算表达式pointer,然后通过将其转换为显式忽略它void.

有时,当您试图说服编译器不要警告未使用的参数时,您会看到此构造,但在您的代码中,该参数已被使用,因为它正在被NULL检查.