使用宏访问 C 中的结构成员名称
Accessing struct member name in C using Macros
我在C中使用宏时遇到了一些问题。我需要访问结构成员的名称。我从这个链接中找到了C++的解决方案 这里!!.现在我正在尝试将其转换为 C,但我不能在结构中包含该函数。这是我唯一能做的:
typedef struct ms ms;
struct ms{
#define SM(y, z) z y;
SM(author, char*);
SM(title, char*);
SM(year, int);
void (*set)(char* fname, char* val);
#undef SM
};
然后,函数:
void set(char* fname, char* val)
{
//code
}
但是我不知道我应该如何填写代码函数以获得与我之前提到的链接相同的解决方案。我需要帮助:(任何人?
必须使用 strcpy
复制字符串。 因此,author
字段将填充为
struct ms myvar;
#define setstr(author,val) strcpy ( (myvar.author), val )
int
可以定期分配
#define setint(year,val) myvar.year=val
相关文章:
- 具有结构成员char数组的sscanf
- 仅使用结构名称访问结构成员
- 使用 structType*& 赋给结构成员
- 使用结构成员指针在C++中填充结构
- 聚合初始化,将成员指针设置为同一结构成员
- 为什么结构化绑定不使用"auto&"返回对结构成员的引用,而是返回成员本身
- 是否可以将结构数组别名为结构成员数组?
- 结构成员在访问时被清除
- 如何指示结构成员没有锯齿?
- 为什么继承的结构成员在联合中无法访问?
- 尝试在 qml 中访问结构成员的 QList
- C++/CLI -- 访问结构成员
- 调用在类中声明的结构成员
- 对结构成员的临时绑定引用
- 无法使用 strcpy 将字符串复制到静态结构成员
- 为什么类成员数据必须是静态的才能被模板化类的模板化结构成员访问
- 填充模板化结构类型的结构成员
- C/C++intellisense 0.26.1不显示结构成员列表
- 在源文件中创建具有结构成员的结构
- 如何访问结构成员作为指针