我有一个功能,可以用2种方式写。
void function(void) {
// operations....
}
和
void function() {
// operations......
}
两个功能都是相同的原型。为什么我们必须在函数定义中提到void
作为参数?
答案 0 :(得分: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;
}
计划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;
}
答案 1 :(得分:3)
在C和C ++中说“无参数”的正确方法是
void function(void);
但是当我们写
时void function();
这意味着在C和C ++中有一点不同的方式!它意味着“可以使用任意数量的未知类型的参数”,而在C ++中它意味着与 function(void)相同。