<分区>
我目前正在阅读的书指出,当你在 c 中声明一个不接受任何参数的函数时,但你不使用关键字 void “函数调用可以传递任何参数 它想要的参数”。所以我尝试了这个。
int number();
int main(void)
{
int x =1;
printf("%d",number(x));
}
int number()
{
return x;
}
但它没有编译???这是如何工作的?
标签 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/