如何在 C 函数中打印变量名

问题描述 投票:0回答:1

我想打印我作为函数输入的二维矩阵的名称。

我尝试使用我在互联网上找到的这个:

#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
。 如何克服这个问题?

c variables
1个回答
2
投票

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.