将没有名称的变量传递给函数

时间:2014-11-24 14:26:01

标签: c++

我看到了一个以下列方式编写的函数:

retVal PreProcessor::TxSlotCB(void *a_pClass, PRE_PARAMS &/*commonParam*/)
{
 some code
}

struct PRE_PARAMS 
{
 uint32_t param1;
 uint32_t param2;
};

第二个参数发生了什么?它怎么可能是空的?有没有办法访问它?

2 个答案:

答案 0 :(得分:4)

在C ++中,可以给出一个形式参数但是匿名。这意味着应该给出实际参数,但不在被调用函数中使用。

所以它应该在调用上下文中给出,它被传输,但是被调用的函数不能也不会使用它。并且编译器不会发出任何警告。

您无法在函数正文中访问它。如果需要访问它,请更改形式参数的声明以为其指定名称。

答案 1 :(得分:1)

这意味着当前此函数不使用PRE_PARAM类型的参数。

所以,当你设计一个函数时,你会决定这个函数为实现它的目的所需的参数。

但后来您发现此参数对此函数没有多大意义。但是,从函数声明中删除此参数是一项繁琐的工作,因为您必须检查对此函数的所有调用,并确保它们确认该更改。

因此,更好的方法是不在函数的定义中提供参数的名称,使该参数变得多余。