-3

C 标准库中的每个标头都以不同的名称包含在 C++ 标准库中,通过删除 .h 并在开头添加“c”生成,例如“time.h”变为“ctime”。这些头文件和传统的 C 标准库头文件之间的唯一区别是函数应该尽可能放在 std:: 命名空间中(尽管实际上很少有编译器这样做)。

由于 c 函数被放入std::命名空间,我尝试了:

man std::printf

但得到:

No manual entry for std:printf

有什么原因吗?(我已经安装了libstdc++-doc,我对规范的 c++ 东西没有任何问题,比如man std::cout

更新

说 c++ 垃圾的原因至少包括:

  1. 垃圾 C++ 手册
  2. 一个空的 c++ 程序需要libstdc++libm并且libgcc_s,而 c 程序只需要libc.
4

2 回答 2

2

如果来自标准 C 的 C++ 函数是相同的并且已经记录(如printfis),那么记录这些函数确实没有意义。

于 2011-06-11T16:05:23.050 回答
2

C 标准库函数的行为不受 libstdc++ 开发人员的控制。它依赖于(在这个和大多数其他 C++ 标准库实现中)底层平台的 Libc 实现。在 Linux 上,这很可能是 glibc,在 Windows 上,msvcrt 等......

关键是所有这些不同的库都提供了不同的和不一致的行为,这些行为必须记录在 libstdc++ 文档中,而这是不可能(不,非常难)做和维护的。它也没有实际用途,因为该文档存在于其他地方。

于 2011-06-11T16:09:10.980 回答