C++ C99中参数列表为空的函数与C++;98?
这是使用GCC(使用-std=c99)和G++(使用-std=c++98)编译的代码:C++ C99中参数列表为空的函数与C++;98?,c++,c,gcc,c99,c++98,C++,C,Gcc,C99,C++98,这是使用GCC(使用-std=c99)和G++(使用-std=c++98)编译的代码: GCC成功地编译了代码,但是G++提出了这样一个问题: 错误:函数“int fun()”的参数太多。 我完全糊涂了。 我知道C++应该通过设计与C兼容,但这种情况显示了我的不兼容性。这种情况是由设计来的吗? void fun(); 表示不带参数的函数。 要将其与C语言进行通信,请编写 void fun(void); // also works in c++ but it's frowned upon 在C
GCC成功地编译了代码,但是G++提出了这样一个问题:
错误:函数“int fun()”的参数太多。
我完全糊涂了。
我知道C++应该通过设计与C兼容,但这种情况显示了我的不兼容性。这种情况是由设计来的吗?
void fun();
表示不带参数的函数。
要将其与C语言进行通信,请编写
void fun(void); // also works in c++ but it's frowned upon
在C语言中,空参数列表意味着不指定函数接受多少个参数。要定义具有0个参数的函数,可以使用
(void)
作为参数列表。在C++中,空参数列表意味着函数需要0个参数,所以,在这个实例中,是的,C和C++是不兼容的。
我知道C++应该与C兼容,但是这个例子说明我不兼容。这个例子是通过设计来的?
虽然C++在很多情况下与C兼容,但情况并非如此。其他例子是从
void fun(void); // also works in c++ but it's frowned upon