如下图,编译cmd_test.c 文件的时候先包含 cmd_test.h,然后cmd_test.h内部又包含了command.h,command.h内部先包含scli.h,再定义数据结构和申明函数,而在scli.h里面使用了command.h中定义的scli_link_node_t,也就是说在包含scli.h头文件的时候,command.h里面的内容还没有定义,所以会报scli.h中找不到scli_link_node_t这个的定义。
如下图,编译cmd_test.c 文件的时候先包含 cmd_test.h,然后cmd_test.h内部又包含了command.h,command.h内部先包含scli.h,再定义数据结构和申明函数,而在scli.h里面使用了command.h中定义的scli_link_node_t,也就是说在包含scli.h头文件的时候,command.h里面的内容还没有定义,所以会报scli.h中找不到scli_link_node_t这个的定义。