[英]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.