C++ - 包括unistd.h:为什么不cunistd?

CDT*_*CDT 65 c c++

据说当在C++中包含C头文件时,应该删除".h"后缀,然后在开头添加"c".例如,#include <cstdio> 而不是#include <stdio.h>.但是当我sleep()在我的代码中使用时,#include <cunistd>它不起作用,但是#include <unistd.h>起作用.为什么不<cunistd>呢?

Car*_*rum 65

您的算法对于大多数(所有?)标准C标头是正确的,但unistd.h不是标准C的一部分,因此标准C++反过来不包括其他c...标头.


com*_*omo 30

因为unistd.h从来不是C语言的一部分.它是操作系统的一部分.


Bar*_*mar 19

<unistd.h> ,代表unix标准标题,名称说明了一切.

  • `unistd`也可以代表"通用标准标题"(我意识到这听起来有点荒谬).关键是,他们应该将它命名为"unixstd.h" - 通过添加_one_字符即时清晰. (26认同)
  • ......这就是名字所说的! (5认同)

bab*_*ttz 6

unistd.h不是标准C的一部分.标准C++ lib不包含其他c标头.