我被告知不要在c++程序中包括像c++这样的C头,而是使用<cstdio>等。如何在不包括struct timeval的情况下获得<sys/time.h>
替代问题,除了在POSIX系统上使用select/ C++11之外,还有其他选择吗?
发布于 2013-08-19 20:22:29
<cstdio>和类似的是C标准库的C++变体。<sys/time.h>根本不是C标准库的一部分(它是certan OS的POSIX接口的一部分),所以不存在C++特定的sys/ctime,所以您只需要使用与C中相同的头文件。
拥有C样式和C++样式头的主要原因是将extern "C"应用于头文件中声明的函数。在某些系统中,可能需要像这样包装函数:
extern "C" {
#include <sys/time.h>
}但是在我的Linux系统中,它会在标准的<sys/time.h>文件中这样做。
发布于 2013-08-19 20:28:27
<cstdio>是C库<stdio.h>的C++变体。区别在于C版本是在全局命名空间中定义的。
您可以在这里看到这些标题的列表:http://www.cplusplus.com/reference/clibrary/
<sys/time.h>不是标准库的一部分,因此在C++中没有等效的部分。你只需要像在C中那样使用它。
https://stackoverflow.com/questions/18322408
复制相似问题