标签:复制 core conf 使用 pre 文件 定义 一个 需要
编译时遇到一个问题,提示xxx未定义,xxx在b.h中使用,在a.h中定义。
b.h没有包含任何头文件。刚开始以为是写错了,但是后来一想不是这样。
编译是把头文件复制到c文件中,头文件不包含其他头文件也能说得过去。
是不是只需要在c文件包含b.h之前包含上a.h就可以了?
肯定是可以这样啊。
细想就会发现有问题,难道我每次记得使用b.h之前要包含上a.h,那为啥不把#include <a.h>放在b.h里面呢?
这样确实更好了。
但是细看a.h就发现有问题,a.h的结构是这样的:
#include <ngx_config.h> #include <ngx_core.h> /* 用户定义 其中包括了b.h中使用的"未定义"的结构体 */ /* 模块内部头文件 其中就包括了b.h */
这样就明白了,原来是模块的头文件都被包含在这个a.h,即对应着ngx_http.h,使用时仅需包含这个头文件即可。
标签:复制 core conf 使用 pre 文件 定义 一个 需要
原文地址:https://www.cnblogs.com/micoblog/p/13093654.html