0

我在 C 中使用宏时遇到一些问题。我需要访问结构成员的名称。我从这里的链接中找到了 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
}

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

4

1 回答 1

0

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

struct ms myvar;

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

int可以定期分配

#define setint(year,val) myvar.year=val
于 2013-10-31T13:09:11.223 回答