关于结构体字段名已参数传入的有关问题
关于结构体字段名已参数传入的问题
假设 有一个 结构体
struct helloworld{
char hello[32];
char world[32];
}test;
//set_default( const char *item, const char *value);
set_default("hello", "123321"); 去实现设置 结构体变量中test的hello字段值为 "123321"
意思就是 设置一个结构体的值,但是 字段名 和 字段的值 以参数的形式传入(宏定义实现也可以)
------解决思路----------------------
结构体内字段偏移量的问题是可以解决的
有一个经典的宏
#define offsetof(TYPE, FIELD) ((size_t)&((TYPE *)0)->FIELD)
这是计算 FIELD 在结构中的偏移量,利用了 0 地址的一个小把戏
你可以用结构指针再加这个偏移量取得字段地址,用来赋值
你这个问题我还是不建议这么搞
假设 有一个 结构体
struct helloworld{
char hello[32];
char world[32];
}test;
//set_default( const char *item, const char *value);
set_default("hello", "123321"); 去实现设置 结构体变量中test的hello字段值为 "123321"
意思就是 设置一个结构体的值,但是 字段名 和 字段的值 以参数的形式传入(宏定义实现也可以)
------解决思路----------------------
结构体内字段偏移量的问题是可以解决的
有一个经典的宏
#define offsetof(TYPE, FIELD) ((size_t)&((TYPE *)0)->FIELD)
这是计算 FIELD 在结构中的偏移量,利用了 0 地址的一个小把戏
你可以用结构指针再加这个偏移量取得字段地址,用来赋值
你这个问题我还是不建议这么搞