繁体   English   中英

我可以将 C 代码插入 C++ 项目(没有错误或 memory 泄漏)吗?

[英]Can I insert C code into a C++ project (without Bugs or memory leaks)?

在我的项目中,在 c++ 中实现,我使用了 2 个库:

  • Libsodium(用于加密和解密)
  • SFML(用于图形部分)

我知道 Libsodium 是在纯 C 代码中实现的,而 SFML 在 C++ 中实现,而我的项目在 C++ 中。

那么,我能否以安全的方式将 C 代码与 C++ 代码混合使用(没有错误和 memory 泄漏的风险)?

先感谢您

你可以,但你不应该。 使用不同的文件并使用带有extern "C"的 header 。 C++ is (was or was intended to be) a superset of C, so everything written in C works in C++ . 但是可能会出现意想不到的复杂情况,例如命名空间冲突、C++ 关键字作为变量名,以及其他意想不到的东西。 C 也不是干净的 C++,所以有些人不会喜欢你的代码。

编辑,以消除误解:
您当然可以将两者结合起来,但您不应该只是将 C 代码复制到 C++ 项目中。

另一个编辑:
超集行为有例外。 很抱歉散布虚假信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM