Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C99中参数列表为空的函数与C++;98?_C++_C_Gcc_C99_C++98 - Fatal编程技术网

C++ C99中参数列表为空的函数与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(使用-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语言中,空参数列表意味着不指定函数接受多少个参数。要定义具有0个参数的函数,可以使用
(void)
作为参数列表。在C++中,空参数列表意味着函数需要0个参数,所以,在这个实例中,是的,C和C++是不兼容的。

我知道C++应该与C兼容,但是这个例子说明我不兼容。这个例子是通过设计来的?


虽然C++在很多情况下与C兼容,但情况并非如此。其他例子是从空> */Cube(允许在C中,但不是在C++中)和关键字(在C中使用变量如<代码>类>代码>作为变量名,但显然不是C++中的关键字,这是完全有效的。是的,这是设计的。

C++是设计不完全兼容C,它是完全不同的语言。C和C++是不同语言,对于任何版本的组合。不,C99和C++ 98或C++ 11之间没有完全兼容。你发现了一个不相容的点自从我刚接触StackOverflow,你回答我的速度让我震惊。感谢网站的创建者,我妈妈将不再担心我的学习!请注意,即使在C语言中,您也应该避免编写此类代码,在声明中指定参数确实要好得多。好的建议。谢谢。好的。我明白了,我不能用C语言编写cpp代码。谢谢您的解释。
void fun(void); // also works in c++ but it's frowned upon