我正在尝试创建一个函数,该函数接收一个变量并打印出它的名称
它看起来像这样
#include <stdio.h>
void print_name(int a);
int main()
{
int a_random_name;
print_name(a_random_name);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
a_random_name
Run Code Online (Sandbox Code Playgroud)
我怎么能在 c 中做到这一点?
正如评论中所讨论的,您不能使用函数来执行此操作,而是使用宏:
#include <stdio.h>
#define print_name(x) (sizeof (x), printf("%s\n", #x))
void foo() {}
int main()
{
int a_random_name;
print_name(a_random_name);
print_name(foo);
return 0;
}
// Prints:
// a_random_name
// foo
Run Code Online (Sandbox Code Playgroud)
请注意,(sizeof (x), 宏的部分在这里是为了确保变量存在。
有关宏操作的更多信息:
C11 宏规范: