假设我有:

func1()
{
    int var = something;
    func2(var);  /* Call func2() with var as I/P parameter */
    ......
    ......
}

func2 (int var)
{
   .....
}


我们可以使用__FUNC__在痕迹中打印func2的名称。

但是有什么方法可以打印(inside f2())调用函数(即f1())中使用的变量NAME来调用此函数:

痕迹(在f2()内部)类似:

func2(var)

最佳答案

好了,您可以修改函数以对输入进行字符串化:

#ifdef INCLUDE_PARAM_TRACE
    #define func2(a) _func2(a, #a)
#endif

#ifdef INCLUDE_PARAM_TRACE
    void _func2(int a, const char * param_string)
#else
    void func2(int a)
#endif


但是,除非您非常注意定义方法的方式和位置,否则这很快就会变得很混乱:-)

关于c - 如何在C中将Function的I/P参数打印为变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8504336/

10-12 21:41