我有一个问题,我需要将结构变量的名称转换为char
。例如:将结构转换为字符
struct CARINFO a;
当我的函数需要的CARINFO a
的说法,我想在功能同时使用a
和"a"
。
任何人都可以帮忙吗?
我有一个问题,我需要将结构变量的名称转换为char
。例如:将结构转换为字符
struct CARINFO a;
当我的函数需要的CARINFO a
的说法,我想在功能同时使用a
和"a"
。
任何人都可以帮忙吗?
您可以在C中做的最好的事情是使用单个宏来定义字符串和变量。没有运行时检查可以让您重新发现变量的名称。
你可以通过将函数变成一个宏,并使用#运算符(字符串化)来获取hte参数的名称。
例如:
#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);
}
我*想*你在谈论C语言,你能证实这一点吗? –
如果您说要达到目的的目的可能会提供更好的答案,但简短答案是否定的,您不能这样做。 –
是的,这是在c。 这就是汽车信息结构的样子。 { \t/*汽车正面的位置。由于所有车辆都假设为 \t要面向北或西,该位置代表 \t该车的西北段*/ \t LOCATION front; \t/*汽车的方向*/ \t定位方向; \t/*车的长度*/ \t int length; } CARINFO; 不幸的是我无法改变它。 – pseudoabdul