繁体   English   中英

如何找出声明 C 结构的位置?

[英]How to find out where a C struct is declared?

我正在尝试将日志记录添加到 Web 代理 Polipo,作为其中的一部分,需要在以下函数中记录 url 请求:

httpClientRequest(HTTPRequestPtr request, AtomPtr url)

从编译中我看到 AtomPtr 是_Atom类型的结构,但我找不到它的定义位置,以便我可以在日志语句中引用 url 的文本。 在 C 代码中查找结构定义的规范方法是什么?

您可以像这样搜索AtomPtr并查看 AtomPtr 的定义位置

typedef struct _Atom {
    unsigned int refcount;
    struct _Atom *next;
    unsigned short length;
    char string[1];
} AtomRec, *AtomPtr;

不幸的是,据我所知,你不能从 C 的源代码中做到这一点。
如果您在 Linux 上工作,并且您的源代码都在src/目录中:

$ find src/ -name ".*\.h" | xargs grep -e "struct _Atom"

如果你在 Linux 上工作,那么 grep 当前目录中的struct关键字以查看它在文件中的定义。

我能够通过以下方式查找结构 MenuType 的定义

grep -Rwn --include \*.h "struct MenuType"

这篇文章帮助了我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM