若是在C++里,没有区别,但是,对于早期C程序的函数而言,声明的参数列表为空或者void,都是一个意思——参数任意!也就是说,你可以像该函数传递任何参数,编译器不做类型检查!某些情况下,这是非常危险的。因此,在C++里,编译器对此的解释就是:该函数没有任何参数!如果你像该函数传递参数,编译器会报错。

举个例子:
C中:
void fun(void);
调用时,你可以传递任何参数;例如:
int a; float f; char c;
fun(a); fun(f); fun(c);
都是对的。因为编译器不会检查该函数的参数都是什么。

C++中:你只能这么调用该函数:
fun();
不能有任何参数! 否则报错。