所有现代编译器(clang 3.6、gcc 4.8)都允许在参数列表中使用 _
编写函数。
像这样:
int func(_)
{
return 1;
}
即使 main
也允许这样的参数 (int main(_)
)
唯一的警告是
p1_concat.c:31:5: warning: type of ‘_’ defaults to ‘int’ [enabled by default]
这个下划线是什么意思?
最佳答案
下划线 _
是一个有效的普通标识符。像这样定义一个函数:
type function(arg1, arg2, arg3)
{
...
}
(即没有参数类型的 ee)是一种从 ANSI 之前的时代开始弃用的样式,称为 K&R 样式定义。所有参数都隐式具有 int
类型,除非您明确声明它们具有不同的类型,如下所示:
type function(arg1, arg2, arg3)
type arg1;
type arg2;
type arg3;
{
...
}
其中 type arg1;
是一个普通声明。这些定义仍然允许但已弃用。因为您没有显式声明 _
,编译器会警告您隐式声明为 int
。
关于c - 下划线作为 C 中的参数是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35457026/