我有一个很大的 .h 文件,其中定义了许多函数。这些函数是用户在运行时调用以使用我的代码执行特定操作的函数。记住这些函数的名称有点乏味,甚至我常常不得不回到源代码来记住我给这些函数起的确切名称。
所以,我想知道我可以编写一个函数来列出给定 .h 文件中定义的所有函数,甚至可以根据一些正则表达式进行过滤。如果可能,“搜索”必须在运行时无需读取源代码即可完成。
我有一个很大的 .h 文件,其中定义了许多函数。这些函数是用户在运行时调用以使用我的代码执行特定操作的函数。记住这些函数的名称有点乏味,甚至我常常不得不回到源代码来记住我给这些函数起的确切名称。
所以,我想知道我可以编写一个函数来列出给定 .h 文件中定义的所有函数,甚至可以根据一些正则表达式进行过滤。如果可能,“搜索”必须在运行时无需读取源代码即可完成。
有像 doxygen (谷歌一下)这样的工具可以帮助你记录源代码;但它不是运行时。
但问题似乎比它看起来更深。
您需要编写有意义的函数和方法名称;对编写代码的人来说意义重大的名称。
您需要为将描述函数的函数(可能比名称可能暗示的更复杂)编写有效且描述性(并且至少最少)的注释。
将代码拆分为逻辑命名空间/类(和文件)以清除代码并限制每个头文件的函数数量。
祝你好运。
我知道的唯一方法是流式传输 .h 文件并解析它。或者您可以采用虚拟方式并将函数名称保存在向量或数组或类似的东西中。
我找到了做这样的事情的最好方法,你希望从程序中访问头文件中的元数据,是创建一个包含你想要的所有函数的数据库(在某个外部文件中),然后运行一个脚本生成头文件。
例如,您可以有一个 CSV 或 TSV 文本文件,其中包含
FunctionName,Description,Arg0Type, Arg0Description,...
然后编写另一个程序(在 python/perl/C++/etc 中)创建一个头文件,看起来像
int FunctionName(Arg0Type arg0);
....
和 ac 文件出来
struct {
int (*funcptr)();
const char* name;
const char* description;
} database[] = {
{ FunctionName, "FunctionName", "Description"},
...
};
然后在您的应用程序中编写代码以搜索database[]
帮助和函数指针。