11

在 C++ 程序中包含前者而不是后者的考虑因素是什么?我总是包括math.hstdlib.h从不cmathcstdlib。我不明白后者甚至存在的原因,有人可以赐教吗?

4

1 回答 1

22

更喜欢包含<c ...>标题。它们是 C++ 标准库头文件。<... .h>头文件是由 C 标准库定义的头文件:

C++ 标准库还提供了 C 标准库的功能,经过适当调整以确保静态类型安全。

C++ 头文件的大部分内容与相应的 C 库头文件相同,只是名称都在std命名空间中定义。

除了第 18 到 30 条和附录 D 中的说明外,每个标题的内容cname应与相应标题的内容相同name.h,如 C 标准库 (1.2) 或 C Unicode TR 中规定的,视情况而定,如同通过包容。然而,在 C++ 标准库中,声明(在 C 中定义为宏的名称除外)在命名空间 std 的命名空间范围 (3.3.6) 内。未指定这些名称是否首先在全局命名空间范围内声明,然后通过显式使用声明注入命名空间 std

于 2013-03-27T10:19:58.953 回答