在kernel/proto.h中,MINIX 3定义了两个前向声明struct proc
和struct timer
。但是,缺少参数中的许多类型信息。完全缺少诸如clock_t
,U16_t
,tmr_func_t
和message
之类的示例。文件中似乎也没有任何#include
语句,那么编译器怎么不抱怨?
答案 0 :(得分:1)
查看kernel/kernel.h,很明显,某些头文件的包含顺序很重要。
/* Important kernel header files. */
#include "config.h" /* configuration, MUST be first */
#include "const.h" /* constants, MUST be second */
#include "type.h" /* type definitions, MUST be third */
#include "proto.h" /* function prototypes */
#include "glo.h" /* global variables */
#include "ipc.h" /* IPC constants */
#include "debug.h" /* debugging, MUST be last kernel header */
并非每个头文件都将包含它依赖的所有其他头文件。学习使用本地搜索工具。另外,谷歌搜索clock_t
可能很有启发性。您提到的其他大多数工具似乎都不是标准的C库类型。
答案 1 :(得分:0)
该头文件包含在其他头文件中,这些头文件可验证所提到的丢失类型。