gpt4 book ai didi

c++ - 在多大程度上允许将 C 和 C++ 结合使用?

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:12 24 4
gpt4 key购买 nike

我正在为类编写一个聊天服务器。我喜欢使用 C 的网络协议(protocol),但我更喜欢用 C++ 编程,尤其是在字符串操作方面。

据我了解,您可以将两者合并到一个文件中并针对 C++ 进行编译,只要存在正确的 #include,它仍会接受 C 代码。

这有什么限制?我应该注意什么? C 中有什么特别的东西不会在.cpp 文件中工作吗?

最佳答案

不要将两者合并在同一个文件中。编写编译为 C++ 的 C 会导致 C 人员对你大吼大叫,反之亦然。相反,制作一个小的 C 库,并让你的 C++ 链接到它。你唯一需要做的就是添加

#ifdef __cplusplus
extern "C" {
#endif

在 C 库的头文件的开头,以及

#ifdef __cplusplus
}
#endif

最后。

这很简单,也很漂亮:创建一个 Makefile,因为您使用的是 gnu make,这真的很简单:

program: cstuff.o program.o

这样,运行 make 将发出以下命令:

cc -c cstuff.c 
g++ -c program.cpp
cc cstuff.o program.o -o program

所以一个目录列表将有 4 个文件:program.cpp cstuff.c cstuff.hMakefile

  • cstuff.h 包含所有结构定义和函数原型(prototype),以及 extern "C" 内容,
  • cstuff.c 是不言自明的,并且
  • program.cpp#include "cstuff.h" 开头,可以调用头文件中列出的函数,并具有您喜欢的所有 C++ 优点。

关于c++ - 在多大程度上允许将 C 和 C++ 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10082223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com