繁体   English   中英

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

[英]passing variable without a name to function

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

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

struct PRE_PARAMS 
{
 uint32_t param1;
 uint32_t param2;
};

第二个参数发生了什么? 怎么可能是空的? 并且有什么方法可以访问它?

在C ++中,可以提供一个正式参数,但可以匿名使用。 这意味着应提供实际参数,但不能在调用的函数中使用该参数。

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

您不能在函数主体中访问它。 如果需要访问它,请更改形式参数的声明以为其命名。

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

因此,发生的事情是当您设计一个函数时,决定该函数实现其目的所需的参数。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM