我们可以混合使用c和c++代码吗
Can we mix c and c++ code
我正在阅读这个网站
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
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 为什么在这个代码结束循环中没有得到结束
- 在c代码之间共享数据的最佳方式
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值