我想使用字符串值的结构内访问的成员:
struct hello_world
{
char rate;
char ssid;
};
有一种varibale假设
char *string="ssid";
我想用这个字符串的值来表示ssid
成员中hello_world
结构。 这可能吗?
我想使用字符串值的结构内访问的成员:
struct hello_world
{
char rate;
char ssid;
};
有一种varibale假设
char *string="ssid";
我想用这个字符串的值来表示ssid
成员中hello_world
结构。 这可能吗?
不,不是这样的。
你需要一个(长) if-else
语句,这将做到这一点。 喜欢:
struct hello_world hw;
char *string="ssid";
if( 0 == strcmp( "ssid", string ) )
{
// use hw.ssid
}
else if ...
而不是使用一个字符串,你是关闭使用枚举所有可能情况更好。
typedef enum {
FIELD_SSID,
FIELD_RATE,
} field_t
field_t string;
然后用一个开关
switch (string) {
case FIELD_SSID:
//use ssid
break;
case FIELD_RATE:
//use rate
break;
}
这种方法比比较字符串的方式更快。
如果您只使用一个场或其他,你可以使用一个工会,而不是一个结构。
定义一个函数,类似于包装打发回成员想要。
char GiveMember(struct hello_world, char* member){ }
但语言本身并不为你提供这样的事。