【发布时间】:2019-06-16 07:10:06
【问题描述】:
这两个程序有什么区别? 我得到的第一个是 4,3,2,1,第二个是编译错误。
#include <stdio.h>
int main()
{
static int i = 5;
if (--i){
printf("%d ", i);
main(10);
}
}
和
#include <stdio.h>
int main(void)
{
static int i = 5;
if (--i){
printf("%d ", i);
main(10);
}
}
【问题讨论】:
-
在第二种情况下,您要调用哪个
main()参数?你展示的不是它。 -
如果您显示确切的完整错误,它可能会更准确地告诉您我的意思。
-
这是一种“形式”,当您使用
(void)时,您明确声明该函数不接受任何参数。如果你稍后调用main(10);,它当然会抱怨,你只是告诉它main没有参数(加上其他关于main作为程序入口点的小问题......) -
您遇到的问题与任何常规函数有关,而不仅仅是
main。
标签: c parameters main