类型转换变量使其无效?

时间:2019-04-16 06:33:11

标签: c typecast-operator

我最近遇到了这段代码,我很困惑,它是做什么用的?

在C编程语言中,将变量类型转换为void数据类型是什么意思?这有什么作用?

如果执行了诸如类型转换或加法之类的表达式,并且未将结果立即分配给某个变量,则该结果将丢失。您为什么要这么做?似乎是无用的表达。

代码示例:

int main(int argc, char *argv[])
{
    /* void unused vars */
    (void) argc;
    (void) argv;

    // more code here

    return 0;
}

似乎作者没有使用这些变量,但是为什么将它们强制转换为void数据类型?您也可以将它们强制转换为int数据类型。

2 个答案:

答案 0 :(得分:5)

这是为了避免某些编译器中未使用的变量警告。

还有一个MISRA规则,该规则规定必须使用所有功能参数。此方法是解决此规则的方法。

答案 1 :(得分:3)

这可用于禁止未使用的变量编译警告。