我想打印我作为函数输入的二维矩阵的名称。
我尝试使用我在互联网上找到的这个:
#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
。
如何克服这个问题?
VariableName(var)
总是在您的代码中生成字符串 "a"
。矩阵的名称仅在调用站点已知,因此您应该将其作为额外参数传递,您可以在那里使用相同的宏来创建字符串:
#include <stdio.h>
#define VariableName(var) #var
void saddle(int a[][100], int m, int n, const char *name)
{
printf("The saddle points of the matrix %s are:\n", name);
}
int main(void)
{
int matrix[100][100];
saddle(matrix, 100, 100, VariableName(matrix));
return 0;
}