C++ 将不带名称的变量传递给函数

C++ 将不带名称的变量传递给函数,c++,C++,我看到一个函数是以以下方式编写的: retVal PreProcessor::TxSlotCB(void *a_pClass, PRE_PARAMS &/*commonParam*/) { some code } struct PRE_PARAMS { uint32_t param1; uint32_t param2; }; 第二个参数中发生了什么?它怎么可能是空的?有什么方法可以访问它吗

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

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

struct PRE_PARAMS 
{
 uint32_t param1;
 uint32_t param2;
};

第二个参数中发生了什么?它怎么可能是空的?有什么方法可以访问它吗 因此,它应该在调用上下文中给出,它被传输,但被调用函数不能也不使用它。编译器不会给出任何警告


您不能在函数体中访问它。如果需要访问它,请更改formal参数的声明以赋予它一些名称。

这意味着该函数当前未使用PRE_PARAM类型的参数

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

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


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

函数体无法访问该参数(通过标准方法)。顾名思义,这可能用于将重载函数(或本例中的回调函数)的参数标记为未在该函数的特定重载版本中使用。当函数中存在未使用的参数只是为了与旧代码兼容时,我会给他默认值(当然,如果它是最后一个没有默认值的参数)。这样,更改后编写的代码就不必传递伪值。您可以做任何事情,只要该函数的读者清楚该函数当前正在使用哪些参数。。。