c - 下划线作为 C 中的参数是什么意思?

标签 c function gcc arguments

所有现代编译器(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/

相关文章:

c - 二进制文件读写

我可以将作为命令行参数传递给 C 中的 char 数组的 .txt 文件保存吗?

c - 读取和写入同一个文件线程安全吗?

excel - 和积#value!错误

c++ - mpi.h 的位置

linux - Eclipse 在预构建中定义构建变量

c - 用指针存储的数据

debugging - 从返回的 PowerShell 函数将调试消息打印到控制台

function - 在 golang 中,使用 net/http 时如何调用带和不带尾随括号的函数

c++ - std::vector 内部结构