题添加标题可以增加可移植性? (SYS / time.h中)

我刚刚在getrusage手册页中注意到这一行:

Including <sys/time.h> is not required these days, but increases portability. (Indeed, struct timeval is defined in <sys/time.h>)

什么?由于struct rusage包含struct timeval作为成员,因此sys / resource.h当然必须包含sys / time.h,否则类型将不完整且无法使用?

这个评论怎么可能有意义?怎么可能没有必要?如何帮助便携性?

解决方法:

通常,在C的早期,您不得不在头文件B之前手动包括头文件A的情况并不少见.也许预处理器的早期版本不能嵌套嵌套,或者只是风格上的(联机帮助页通常会直接包含相关结构的头文件).

在“这些天”中,sys / resource.h必须包含sys / time.h或重复struct timeval的定义,但并非每个系统都完全遵循该标准.

上一篇:是否连续两次调用getrusage可以产生越来越多的结果?


下一篇:指针习题