【问题标题】:Is there a way to get name of argument used in the call of a function in c有没有办法获取在 c 中调用函数时使用的参数名称
【发布时间】:2016-02-29 12:42:53
【问题描述】:

我正在 C 中尝试获取调用函数时使用的变量的名称,如下所示:

func(varA, varB)

我想知道参数的名称(varA, varB)

我正在打印几个矩阵的内容,我想知道是否有任何简单的方法可以区分它们,而不必实际将名称作为字符串发送。

谢谢

【问题讨论】:

  • 你想知道他们做什么?用于调试?在调试器中运行您的代码,您就会知道。此外,参数不必有名称。如果函数是用func(n + 1, next()) 调用的呢?
  • 嗨。 @DCuser 如果有任何答案解决了您的问题,请单击复选标记考虑accepting it。这向更广泛的社区表明您找到了解决方案,并为回答者和您自己赢得了一些声誉。

标签: c function arguments


【解决方案1】:

如果不更改函数定义,这是不可能的。

您可以手动传递名称或使用宏:

#define func( a , b )    func2( a , b , #a , #b )

func2( type a , type b , const char* namea , const char* nameb ){ ...

在预处理代码时,运算符#会将变量转换为字符串。

【讨论】:

    【解决方案2】:

    当一个C程序编译执行时,变量名基本不存在了。

    所以,不,您无法根据需要从接收的参数中获取实际参数的(变量)name

    【讨论】:

      猜你喜欢
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 2018-12-26
      • 2021-11-27
      • 1970-01-01
      相关资源
      最近更新 更多