在 C++ 中创建库头文件? (相对于老式的 C?)

Creating Library Header Files in C++? (As opposed to old-fashined C?)

我刚刚学习了 C++ -- 我决定我正在从事的一个项目,我最好回到绘图板并从头开始用 C++ 编写它,而不是继续使用 C。

只有一个问题 --- 该项目的一部分包括库。有些库在 C++ 中不需要,但有些会。

我注意到在 C++ 中包含库头的语法与在 C 中不同。在 C 中,您编写以下内容:

#include <someheader.h>

另一方面,在 C++ 中,您键入以下内容(如果它是 C++ 库):

#include <someheader>

正因为如此,我担心我将 C++ 头文件放在一起的方式可能与我将 C 头文件放在一起的方式有所不同——或者至少在我命名它的方式上有所不同文件系统。

那么,有人知道我在编写 C++ 库头文件而不是 C 库头文件时需要了解的任何信息吗?

没有区别。大多数(如果不是全部)标准 C++ 库包含文件没有 .h 扩展名,以将它们与 C 库包含区分开来。原始的 C 标准头文件名在 C++ 中已被弃用,尽管几乎每个编译器仍然支持它们,并且名称更改为 c 后跟原始 C 文件名,没有 .h 扩展名。

例如:在C中,与字符串相关的头文件是string.h,而C++中与字符串相关的头文件是string。原始的 C 头文件也可以在 C++ 中作为 cstring.

访问

随意混合使用标准 C headers 和标准 C++ headers。但要保持一致。对于 C++ 项目使用 <cstdlib>,对于 C 使用 <stdlib.h>,因为 C++ headers 使用命名空间,您可以避免名称冲突。所有标准 C headers 在 C++ 中复制,因此您可以在 C++ 代码中自由使用 C 库。

如果您查看 <cstdlib>,您会发现它包括 <stdlib.h>。其他标准C也是如此 headers.