我发现 .c 程序在不包含头文件的情况下执行得很好,尽管它会引发警告,但是对于 .cpp 扩展名,不包含头文件会引发错误。有人可以解释一下内部行为吗?
最佳答案
简单答案:C 和 C++ 是具有不同规则的不同语言。
对于您的具体问题:在两种语言中使用没有原型(prototype)的函数确实是非法。但在 C 中,曾经有一段时间这是合法的(在 C99 之前),因此许多编译器仍然允许它,并在默认操作模式中发出向后兼容性警告。另一方面,这在 C++ 中从来是不合法的,因此不太可能找到接受此类代码的 C++ 编译器。
关于c++ - .c 程序不需要包含 header ,但 .cpp 程序需要包含 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45607495/