enum ID {
 ID_ABC,
 ID_DEF,
 ID_GHI,
 ...
};
struct IDITEM {
 enum ID id;
 const char *name;
};
という定義があったとして、

struct IDITEM table[] = {
 {ID_ABC, "ID_ABC"},
 {ID_DEF, "ID_DEF"},
 {ID_GHI, "ID_GHI"},
 ...
};
という宣言を簡単にマクロでつくれないでしょうか。
イメージとしては

#define DECL(id) {id, "id"}

struct IDITEM table[] = {
 DECL(ID_ABC),
 DECL(ID_DEF),
 DECL(ID_GHI),
 ...
};
みたいな。でも id を " で囲む方法がわかりません。"##id##" じゃないし...
どうすればいいでしょう?