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



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

我本质上想编写一个函数,该函数接受函数指针并返回表示参数名称的字符串数组

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

在 C 语言中无法获取参数的名称,但可以使用 dwarf 选项对其进行编译,在这种情况下,它将在输出可执行文件中保留参数的名称。 对于这样的可执行文件,你可以像 gdb 一样获取参数的名称。

您可以使用与 gdb 相同的库。你应该研究如何使用矮人,从6.1 Symbol Reading开始阅读.

语言中没有这样的机制。

如果你

做了一些调查,你会发现如果你的程序不是用调试信息编译的,那么任何地方的可执行文件中都没有这样的符号。因此,程序本身在运行时也无法访问它们。

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

最新更新