变量名,C中运行时的函数参数

在C程序中是否可以在运行时知道函数参数和变量的名称类型?例如,如果我有一个功能:

int abc(int x, float y , somestruct z ){
    char a;
    int b ;
}

我可以在这个函数abc()中知道,参数和变量的名称是什么,在这种情况下是x,y,z,a,b,它们的类型是int,float,somestruct,char,int.

如果还有其他功能:

float some_func(specialstruct my_struct, int index){

} 

我应该知道参数名称是my_struct,索引和类型是specialstruct,int.

我在运行时需要这些信息吗?

我可以访问基址指针和返回地址,我可以使用上面的指针获取所需的信息.

我能够使用返回地址和dladdr()函数提取函数名称.

我看到GDB这样做了,所以应该可以提取这些信息吗?

最佳答案 在C中没有任何反射或类似的东西.如果你想要这样的设施 – 你应该为此目的设计一些实用工具,宏并使用特殊的编码规则来达到预期的效果.但是IMO – 它不是一个可读且易懂的C代码.

点赞