有没有办法在C中获取函数的参数名称

时间:2019-06-10 06:14:44

标签: c function

在python中有inspect.argspec,它将为您提供有关函数的数据,包括参数名称,但是在C语言中,我不知道如何从函数中获取此信息。我本质上想写一个带有函数指针并返回代表参数名称的字符串数组的函数

3 个答案:

答案 0 :(得分:4)

  

我本质上想编写一个带有函数指针并返回代表参数名称的字符串数组的函数

C中的函数参数没有函数定义之外的名称,并且一旦编译代码,这些名称便会完全消失。调试器可以使用编译器生成的符号文件来显示函数,参数和变量的名称,但是通常所有这些信息在编译过程中都会被剔除。

答案 1 :(得分:2)

C语言无法获取参数名称,但是可以使用dwarf option进行编译,在这种情况下,它将参数名称保留在输出可执行文件中。对于此类可执行文件,您可以使用与gdb相同的方法来获取参数名称。

您可以使用与gdb相同的库。您应该学习如何使用侏儒,从6.1 Symbol Reading开始阅读。

答案 2 :(得分:1)

该语言没有这种机制。

如果进行了一些调查,您会发现,如果您的程序未使用调试信息进行编译,则可执行文件中的任何地方都没有此类符号。因此,程序本身在运行时也无法访问它们。

但是,如果您使用调试符号(不是语言的一部分)进行编译,则可以可能编写代码以检索这些符号。