此问题已在此处有答案:
get the variable name passed to a function in C(4个答案)
3小时前关闭
我想打印一个二维矩阵的名称,我在一个函数中作为输入。
我试着用我在网上找到的这个:
#include <stdio.h>
#define VariableName(var) #var
void saddle(int a[][100], int m, int n)
{
printf("The saddle points of the matrix %s are: \n", VariableName(a));
}
`
但是在每个函数调用中,我得到的名称是a
,而不是输入的矩阵I
,例如。A
、B
或C
。如何度过这一关?
1条答案
按热度按时间wlsrxk511#
VariableName(var)
总是在代码中生成字符串"a"
。矩阵的名称只有在调用站点才知道,所以你应该把它作为一个额外的参数传递,你可以在那里使用相同的宏来创建字符串:使用
"matrix"
而不是VariableName(matrix)
似乎更简单,但这里有一个更高级的版本,其中隐式传递矩阵名称或表达式: