标签: c++ c c-preprocessor
我已经看到.c程序在没有包含头文件的情况下执行正常但是它会抛出警告,但是对于.cpp扩展名,不包含头文件会引发错误。有人可以解释内部行为吗?
答案 0 :(得分:6)
简单回答:C和C ++是不同的语言,具有不同的规则。
对于您的具体问题:在两种语言中使用没有原型的函数确实非法。但是在C中,有一段时间这是合法的(在C99之前),因此许多编译器仍然允许它在默认操作模式下向后兼容的警告。另一方面,这在C ++中从不合法,因此根本不可能找到接受此类代码的C ++编译器。