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

时间:2012-01-09 07:05:04

标签: c++ c

我正在阅读这个网站

  

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

这是一个C ++网站。但是,它使用printf来显示东西。但是,我认为在c ++中,我们使用cout来显示东西。我们可以像在这里一样混合使用c和C ++代码。

8 个答案:

答案 0 :(得分:7)

没有C ++和C代码的混合。虽然您当然可以在C ++中使用cout,但您也可以使用printf。绝大多数合法的C代码也是合法的C ++代码。实际上,如果您的代码printf的{​​{1}} {/ 1}},则C ++标准的第27.8.2节要求定义#include

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

是的,C和C ++(极少数例外)既可能又容易混合。您可能遇到问题的一个例子是混合printf和cout,输出可能不是您期望的顺序。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

C ++包含(大部分)C作为子集(尽管这不是严格的子集)。如果你#include <cstdio>可以使用printf这样的东西,除非你有充分的理由,你应该坚持使用C ++结构(std::vector, std::cout, new, delete,等)。

答案 6 :(得分:0)

是的,你可以混合2个代码,但是如果你不愿意编辑与C的兼容性,结果代码应该是C ++。对于大多数代码来说,C ++是向后的

答案 7 :(得分:0)

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

#ifdef __cplusplus
extern "C" {
#endif

void myCFunction();

#ifdef __cplusplus
}
#endif