C 中 int main 和 int main(void) 函数的区别
intmain表示函数在程序执行结束时返回一些整数,甚至是“0”。“0”代表程序成功执行。
intmain的语法如下-
int main(){ --- --- return 0; }
intmain(void)表示该函数不接受任何参数。假设,如果我们不在括号中保留void,则该函数将采用任意数量的参数。
int的语法main(void)如下-
int main(void){ --- --- return 0; }
实际上,两者似乎相同,但是intmain(void)在技术上更好,因为它清楚地提到main只能在没有任何参数的情况下调用。
通常,在C语言中,如果函数签名不指定任何参数,即可以带任意数量的参数或不带任何参数调用该函数。
让我们采用相同的逻辑来实现这两个函数的代码。唯一的区别是这些函数的语法。
示例1
下面给出的是main()没有参数的int函数的C程序-
#include输出结果int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(10); } return 0; }
执行上述程序时,会产生以下结果-
after decrement a =9 after decrement a =8 after decrement a =7 after decrement a =6 after decrement a =5 after decrement a =4 after decrement a =3 after decrement a =2 after decrement a =1 after decrement a =0
示例2
下面给出的是相同的程序,但具有intmain(void)函数-
#include输出结果int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(10); } return 0; }
执行上述程序时,会产生以下结果-
error
如果我们为intmain()和int编写相同的代码,main(void)我们将得到一个错误。发生这种情况是因为void表示该函数不带参数。
因此,尝试在上面的示例中删除main中的参数10并进行编译。因此,在整改后,上述代码将如下-
示例
#include输出结果int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(); } return 0; }
执行上述程序时,会产生以下结果-
after decrement a =9 after decrement a =8 after decrement a =7 after decrement a =6 after decrement a =5 after decrement a =4 after decrement a =3 after decrement a =2 after decrement a =1 after decrement a =0