繁体   English   中英

static 中没有标识符参数的类型 void function

[英]type without identifier parameter in a static void function

前几天我在下面看到了代码(我已经对其进行了清理,因为它不是开源/公共的),但不明白没有标识符的类型如何做任何事情/被使用。 我找不到任何可以清楚地描述这里发生的事情的东西,这似乎是预先声明的事情或原型设计的事情,但这是实际的 function 定义,谁能解释一下,对不起,如果这是一个新手问题。

static void myfunction(int /*comment*/)
{
    // code here, loop that waits for a pid to exit
}

function 中没有使用该参数,为了避免可能出现的警告,可以省略参数变量名。

调用 function 时传递的任何值都将被忽略。


由于 C++17 标准,您还可以使用[[maybe_unused]]属性来判断 function 中可能不会使用参数:

static void myfunction([[maybe_unused]] int argument)
{
    // ...
}

此属性还可用于其他变量,不仅是 arguments,还可以用于整个函数。

function 的原型可能如下所示:

void myfunction(int parameter);

实现 function 的人不需要parameter ,因此他们以int的形式保留了占位符,以避免警告他们可能出现的错误:

static void myfunction(int /*comment*/)
{
    // code here, loop that waits for a pid to exit
}

还有一种做法是人们在实现此类功能时喜欢做的 - 他们喜欢留下评论,指出可能的参数可能被用于什么,就像在您的示例中一样。

一个未命名的 int 可以用作区分相同 function 签名的占位符,一个经典的例子可能是重载后增量和前增量运算符:

//Define prefix increment operator
Point& Point::operator++()
{
   _x++;
   _y++;
   return *this;
}

// Define postfix increment operator.
Point Point::operator++(int)
{
   Point temp = *this;
   ++*this;
   return temp;
}

暂无
暂无

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

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