C 将结构转换为字符
我有一个问题,需要将结构变量的名称转换为C 将结构转换为字符,c,struct,char,C,Struct,Char,我有一个问题,需要将结构变量的名称转换为char。例如: struct CARINFO a; #define MYFUNC(x) \ do { real_func(x); printf("parameter name: " #x "\n"); } while (0) 当我的函数接受参数CARINFO a时,我希望在函数中同时使用a和“a” struct bar { // blah }; void actual_foo(struct bar *b, char *bname) {
char
。例如:
struct CARINFO a;
#define MYFUNC(x) \
do { real_func(x); printf("parameter name: " #x "\n"); } while (0)
当我的函数接受参数CARINFO a
时,我希望在函数中同时使用a
和“a”
struct bar {
// blah
};
void actual_foo(struct bar *b, char *bname) {
// whatever
}
#define foo(bar) actual_foo(&(bar), #bar)
int main() {
struct bar b;
foo(b);
}
有人能帮忙吗?在C语言中,最好使用一个宏来定义字符串和变量。没有运行时检查可以让您重新发现变量的名称。在C中,您最好使用一个宏来定义字符串和变量。没有运行时检查允许您重新发现变量的名称。您可以通过将函数转换为宏,并使用#运算符(字符串化)获取参数的名称来实现 例如:
struct CARINFO a;
#define MYFUNC(x) \
do { real_func(x); printf("parameter name: " #x "\n"); } while (0)
您可以通过将函数转换为宏,并使用#运算符(字符串化)获取参数的名称来实现 例如:
struct CARINFO a;
#define MYFUNC(x) \
do { real_func(x); printf("parameter name: " #x "\n"); } while (0)
可以使用宏将指向结构的指针及其名称传递给实际函数
struct bar {
// blah
};
void actual_foo(struct bar *b, char *bname) {
// whatever
}
#define foo(bar) actual_foo(&(bar), #bar)
int main() {
struct bar b;
foo(b);
}
可以使用宏将指向结构的指针及其名称传递给实际函数
struct bar {
// blah
};
void actual_foo(struct bar *b, char *bname) {
// whatever
}
#define foo(bar) actual_foo(&(bar), #bar)
int main() {
struct bar b;
foo(b);
}
我想你说的是C语言,你能证实这一点吗?如果你说你想这样做的目的是什么,可能会提供更好的答案,但简短的回答是不,你不能这样做。是的,这是C语言。这就是汽车信息结构的外观。{/*汽车前部的位置。由于假设所有汽车都面向北方或西方,因此该位置表示汽车的西北段/位置前部;/汽车的方向/方向方向方向;/汽车的长度*/int length;}CARINFO;不幸的是,我不能改变它。我想你说的是C语言,你能证实这一点吗?如果你说你想这样做的目的是什么,可能会提供更好的答案,但简短的回答是不,你不能这样做。是的,这是C语言。这就是汽车信息结构的外观。{/*汽车前部的位置。由于假设所有汽车都面向北方或西方,因此该位置表示汽车的西北段/位置前部;/汽车的方向/方向方向方向;/汽车的长度*/int length;}CARINFO;不幸的是,我不能改变它。