为什么func()和func(void)是不同的

JEM*_*JEM 3 c function

我有一个功能,可以用2种方式写.

void function(void) {
        // operations....
}
Run Code Online (Sandbox Code Playgroud)

void function() {
       // operations......
}
Run Code Online (Sandbox Code Playgroud)

两个功能都是相同的原型.为什么我们必须void在函数定义中提及作为参数?

gan*_*ars 10

不,两者都有不同的原型.

编译您将理解的以下程序.

void function1(void)
{
   printf("In function1\n");
}

void function2()
{
   printf("In function2\n");
}

int main()
{
   function1();
   function2(100); //Won't produce any error
   return 0;
}  
Run Code Online (Sandbox Code Playgroud)

计划2:

 #include <stdio.h>
 void function1(void)
 {
    printf("In function1\n");
 }

 void function2()
 {
    printf("In function2\n");
 }

int main()
{
    function1(100);   //produces an error
    function2();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)