c - 空参数列表是什么意思?

标签 c parameters arguments

<分区>

我目前正在阅读的书指出,当你在 c 中声明一个不接受任何参数的函数时,但你不使用关键字 void “函数调用可以传递任何参数 它想要的参数”。所以我尝试了这个。

int number();

int main(void)
{
    int x =1;
    printf("%d",number(x));
}

int number()
{
    return x;
}

但它没有编译???这是如何工作的?

最佳答案

这是一个过时的特性1,在 C 语言标准化之前,几十年前。

永远不要使用它。

在古老的 C 语言中,在您出生前十年,您可以声明一个不带参数的函数。当您调用它时,编译器会将参数提升为默认类型并将它们传递给函数。本质上,编译器从调用中的参数中找出参数声明。

函数仍应使用参数定义,并且它们应与调用函数的方式相匹配。


1 “功能”这个词用错了。这是当时做事的方式,因为尚未广泛开发出更好的方法。在一种新的编程语言中,这种特性会被认为是一种缺陷。

关于c - 空参数列表是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167390/

相关文章:

c - 为什么我的求和程序表现得很奇怪?

c++ - 编译器如何以及在内存中的什么位置存储有关变量类型的信息?

sql-server - SSIS 查找转换错误 : The EXECUTE permission was denied on the object 'sp_describe_undeclared_parameters'

ruby-on-rails - 未定义的方法 `stringify_keys!' ruby​​ on rails

c - c中字符串中的反向元音

c - 为什么我的 printf 这样做?

php - 根据 GET 参数显示动态文本

Java:何时使用 String[] args 而不是 String args[]

python - 如何将 "args=(...)"添加到我自己函数的参数中?

c - 将指针传递给指针以在函数中重新分配