我们可以混合使用c和c++代码吗

Can we mix c and c++ code

本文关键字:c++ 代码 混合 我们      更新时间:2023-10-16

我正在阅读这个网站

http://www.cplusplus.com/reference/clibrary/cstring/strcmp/

它是一个C++网站。但是,它使用printf来显示内容。然而,我认为在c++中,我们使用cout来显示事物。我们可以像这里那样混合使用c和c++代码吗。

没有C++和C代码的混合。当然可以在C++中使用cout,但也可以使用printf。绝大多数合法的C代码也是合法的C++代码。事实上,如果您的代码#include<cstdio>,那么C++标准的27.8.2节要求定义printf

从技术上讲,是的,可以混合C和C++代码。C++是一个接近C的超级集合,拥有所有的C库(除了一些细微的差异)。

然而,是否应该混合C和C++是另一回事。一般来说,如果你用C++编写,你应该坚持使用C++结构。

是的,C和C++(除了极少数例外)都是可能的,而且很容易混合。您可能遇到问题的一个例子是混合printf和cout,输出可能不会按照您期望的顺序出现。

在C++中,C运行时间是可用的,因为C++在设计上与C在很大程度上兼容,以便向后兼容。也就是说,如果你正在编程C++,你应该尽可能避免使用C运行时,因为C++在功能和安全方面提供了更多。例如矢量,字符串

当然可以!但请确保将代码保存在.cpp文件中。有些编译器不会在.C文件中编译C++代码。

C++包含(大部分)C作为子集(尽管这不是一个严格的子集)。如果您使用#include <cstdio>,那么您可以使用printf之类的东西,但是,除非您有充分的理由,否则您应该坚持使用C++构造(std::vector, std::cout, new, delete,等)。

是的,您可以混合这两个代码,但如果您不愿意编辑以与C兼容,则生成的代码应该是C++。对于大多数代码来说,C++是向后的

让C++编译器知道您正在调用C代码:

#ifdef __cplusplus
extern "C" {
#endif
void myCFunction();
#ifdef __cplusplus
}
#endif