3

我有一个函数,可以用两种方式编写。

void function(void) {
        // operations....
}

void function() {
       // operations......
}

两个函数都具有相同的原型。void为什么我们必须在函数定义中提及作为参数?

4

2 回答 2

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;
}  

方案二:

 #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;
}
于 2013-10-06T05:39:03.893 回答
3

在 C 和 C++ 中说“无参数”的正确方法是

void function(void);

但是当我们写

void function();

这意味着在 C 和 C++ 中的方式有​​点不同!它的意思是“可以采用任意数量的未知类型的参数”,在 C++ 中它的含义与function(void)相同。

于 2013-10-06T05:42:01.967 回答