我在C中使用宏时遇到一些问题。我需要访问struct成员的名字。我从这个链接HERE!!!找到了它在C ++中的解决方案。现在我正在尝试将其转换为C,但我不能在struct中使用该函数。 这是我唯一能做的事情:
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
}
但是我不知道如何在函数中填写代码以获得与我之前提到的链接相同的解决方案。我需要帮助:(有人吗?
答案 0 :(得分:0)
必须使用strcpy
复制字符串。因此,author
字段将填充为
struct ms myvar;
#define setstr(author,val) strcpy ( (myvar.author), val )
int
可以定期分配
#define setint(year,val) myvar.year=val