为什么要将变量赋给自己

时间:2013-10-24 08:41:56

标签: c

一位同事写了这样一个函数(评论是我写的):

static void foo(void *arg)
{
    //arg is NOT global variable
    arg = arg;
    // call other function, but doesn't use arg
    foo2();
}

是否有理由编写这样的代码?它有一些特殊用途吗?

3 个答案:

答案 0 :(得分:7)

这只是抑制未使用参数的编译器警告的一种方法。

其他常见方法是:

(void)arg;

#pragma unused (arg)    // not supported by all compilers

答案 1 :(得分:5)

可能是为了将来的扩展目的。现在,该参数未被使用,但可能在更高版本中,它可用于更多功能,而无需更改功能签名。

添加 Paul R。指出的目的,arg = arg;语句只是尝试使用arg来抑制编译器警告,以获得干净的无警告构建

P.S。:这样的代码也在我公司使用。

答案 2 :(得分:3)

看起来只是为了避免“未使用的参数”警告。他们可以使用__attribute__((unused))作为arg。