0

C でマクロを使用する際に問題があります。構造体メンバーの名前にアクセスする必要があります。そして、このリンクHEREから 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
}

しかし、前に述べたリンクと同じ解決策を得るには、関数内のコードをどのように入力すればよいかわかりません。助けが必要です:(誰か?

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 に答える