使用宏访问C中的结构成员名称

时间:2013-10-31 13:01:13

标签: c++ c macros struct

我在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
}

但是我不知道如何在函数中填写代码以获得与我之前提到的链接相同的解决方案。我需要帮助:(有人吗?

1 个答案:

答案 0 :(得分:0)

必须使用strcpy复制字符串。因此,author字段将填充为

struct ms myvar;

#define setstr(author,val) strcpy ( (myvar.author), val )

int可以定期分配

#define setint(year,val) myvar.year=val