列出C中代码中定义的所有变量

列出C中代码中定义的所有变量,c,C,我想有一个在C代码中定义的所有变量的列表。C中有内置的方法来执行这个任务吗 C中是否有内置的方法来执行此任务 不,没有。C语言是一种没有语言的语言。不可能检查它自己的源代码 您可以用C编写一个解析器,解析程序的源代码并从中提取信息。如果您想在C程序中使用直接定义变量的列表,您必须创建一个列表(可能是一个字符串数组),并在每次定义新变量时向列表中添加名称。在C语言中,没有内置的方法可以根据变量的地址来获取变量名,因为变量名在编译后会在其自身的范围内被完全删除。所以列表中的名字必须手动输入 或者您可

我想有一个在C代码中定义的所有变量的列表。C中有内置的方法来执行这个任务吗

C中是否有内置的方法来执行此任务

不,没有。C语言是一种没有语言的语言。不可能检查它自己的源代码


您可以用C编写一个解析器,解析程序的源代码并从中提取信息。

如果您想在C程序中使用直接定义变量的列表,您必须创建一个列表(可能是一个字符串数组),并在每次定义新变量时向列表中添加名称。在C语言中,没有内置的方法可以根据变量的地址来获取变量名,因为变量名在编译后会在其自身的范围内被完全删除。所以列表中的名字必须手动输入

或者您可以使用一些工具从程序中筛选变量,例如在Linux bash上使用ctags

ctags --c-kinds=lv -f - <YOUR_C_SOURCE_FILE_NAME> | cut -d$'\t' -f1
ctags--c-kinds=lv-f-| cut-d$'\t'-f1

ctags还可以获取完整的定义语句。阅读ctags手册了解更多详细信息。

否。这种功能是其他语言中所谓的反射的一部分,而C没有。另请参见否,C中的变量名对用户来说很方便。您可以使用工具或IDE来读取C代码并查找所有变量。然而,通常你不需要。你想解决什么问题?你是想要一个在程序本身中运行的方法,还是一个在程序外部检查源代码的工具?也许这会有所帮助?打开链接器映射文件并对其进行分析:)