Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何分析C头文件?_C_Gcc - Fatal编程技术网

如何分析C头文件?

如何分析C头文件?,c,gcc,C,Gcc,我想写一个分析C头文件的脚本。 标头包含一些函数声明 scrip需要了解每个函数有多少个参数,以及它们的类型 gcc或其他工具可以做到这一点吗?这取决于您在解析C头文件时希望达到的准确程度。您可以为函数声明实现C语法,并保证100%正确地解析它,但这将是大量工作 相反,简单的正则表达式匹配器是最简单的方法,但可能存在假阳性匹配。可以使用C++、Python或其他脚本语言(如BASH或PuthSek)来实现正则表达式解析器。我建议python对初学者友好 如果您不知道什么是正则表达式,那么它是一种

我想写一个分析C头文件的脚本。 标头包含一些函数声明 scrip需要了解每个函数有多少个参数,以及它们的类型


gcc或其他工具可以做到这一点吗?

这取决于您在解析C头文件时希望达到的准确程度。您可以为函数声明实现C语法,并保证100%正确地解析它,但这将是大量工作

相反,简单的正则表达式匹配器是最简单的方法,但可能存在假阳性匹配。可以使用C++、Python或其他脚本语言(如BASH或PuthSek)来实现正则表达式解析器。我建议python对初学者友好

如果您不知道什么是正则表达式,那么它是一种用于解析字符串和从字符串中提取数据的简单语言。因此,您可以创建一个正则表达式来查找c函数声明,然后使用该表达式提取所有参数。应该是直截了当的


在上创建一个正则表达式并对teat字符串进行测试,然后用python实现该表达式来完成这项工作。

脚本或C程序?我想您正在寻找一个C解析器,但是C解析器是否能理解任何东西都是一个意见问题。最好不要问一个新问题来绕过前一个问题的结束——坦率地说,这是不允许的。这只是前一个短语的一个细微变化,正如off-topic一样,您可以尝试使用debug info-g选项编译文件,并使用libdwarf或通过解析dwarfdump的输出来处理调试信息