为什么在C++中使用#include unistd.h而不是cunistd?

82
据说在C++中包含C头文件时,应该去掉“.h”后缀,然后在开头添加“c”。例如,使用#include <cstdio>而不是#include <stdio.h>。但是当我在代码中使用sleep()时,#include <cunistd>无法工作,而#include <unistd.h>可以工作。为什么不能用<cunistd>
4个回答

89

你的算法对大多数(所有?)标准C头文件是正确的,但unistd.h不是标准C的一部分,所以标准C ++也没有将其与其他c...头文件一起包含。


你的算法适用于大多数(也许所有)标准C头文件,但是unistd.h 不是标准C的一部分, 因此标准C++ 也不会把它和其他c... 头文件一起包括。

40

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


21

<unistd.h>,代表Unix标准头文件,名字就是它的全部含义。


9
那就是名字的含义! - Alois Mahdal
39
“unistd”其实完全可以代表“通用标准头文件”(我知道这听起来有点荒谬)。关键是,他们本该将它命名为“unixstd.h”,只需要增加一个字符就能立即让人一目了然。 - Vicky Chijwani

6

unistd.h不是标准C的一部分。 标准的C++库并没有将其包含在其他C头文件中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接