包含头文件不是.c程序所必需的,而是.cpp程序

use*_*621 -4 c c++ c-preprocessor

我已经看到.c程序执行正常但没有包含头文件,虽然它会抛出警告,但是对于.cpp扩展名,不包含头文件会引发错误.有人可以解释内部行为吗?

小智 6

简单回答:C和C++是不同的语言,具有不同的规则.

对于您的具体问题:使用没有原型的函数在两种语言中都是非法的.但是在C中,有一段时间这是合法的(在C99之前),因此许多编译器仍然允许它在默认操作模式下向后兼容的警告.另一方面,这在C++中从来都不合法,因此根本不可能找到接受这种代码的C++编译器.