void的一个用途

今天看到一段案例代码,觉得挺有意思的:

void ouch(int sig)
{
    printf("OUCH! - I got signal %d\n", sig);
    (void) signal(SIGINT, SIG_DFL);
}

这里在signal函数前写了void,到底为啥要写呢?在网上随便搜索了一下,没有找到相关的回答。

自己思考了一下,得出了一个自以为是的结论:

!!!note
void不能用来定义类型,但是却可以做一个表态,即表态signal函数,没有必要考虑它的返回值。

另外,在定义一个变量而未使用时,通常会有一个warning,也可以通过这样的方式去避免warning:

int a = 0;    // 如果没有使用,会提示:warning: unused variable a
(void)a;    // 没有任何效果,但是避免了warning

猜你喜欢

转载自www.cnblogs.com/demon90s/p/9016151.html