Nginx情景分析之配置文件解析(3)

0x008004A2+ 8 = 0x008004AA,你应该晓得这个地址里面放的是什么,所以外面做了一个类型强转,(void **),这个转换告诉我们,0x008004AA是个二级指针值,这个地址下放的是一个指针,现在我们需要里面的指针,于是就有了*(void **)。

完整的过程是这样的:

//得到一个指针,到底是几维呢?无所谓,这里我们是拿它当二维指针来用的,为啥呢?

// 前面说过了,他们是子模块配置的指针���数组!

confp =*(void **) ((char *) cf->ctx + cmd->conf);

conf = confp[ngx_modules[i]->ctx_index];     // 拿到配置结构   

rv =cmd->set(cf, cmd, conf);               // 做处理

最后说明一下,开始提到的那个void ****类型成员,使用这种类型的原因我们可以在ngx_events_block函数中找到答案。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wypwjg.html