13です。
まず、
>>20
一応、Cソースとそのヘッダファイルがどういう目的で作られているのか知っているつもりです。で、追加が面倒なので「リファクタング」したいというところです。
そして
>>19
早速のご回答ありがとうございます。どちらもうまく動きました。
これで、とりあえず、定義の一括追加が出来そうです。
一行目のenum { prefix ## _ ## name = val};
のenumのところが全然気がつかなくて、困ってました。

それで、申し訳ないですが追加の質問です.
たとえば、19さんのだと
printf("type=%#x\n",TYPE_EVENT);
printf("size=%#x\n",SIZE_EVENT);
が可能なのは確認したのですが、さらに次のステップで、
for(i=0;i<n;i++){
printf("type=%#x\n",TYPE_XXX);
printf("size=%#x\n",SIZE_XXX);
}
で、EVENTやNAMEやPACEの出力を可能にしたいのですが
なにか良い方法ってありますでしょうか。(これが13でENUM_TYPE_EVENTを出した理由です。)

また、これと同じかもしれませんが、
int func(enum_app a)
という関数内で、引数がENUM_TYPE_EVENTみたいなEVENTを使っている場合、
printf("type=%#x\n",TYPE_EVENT);
を実行、引数がENUM_TYPE_PACEみたいなPACEを使っている場合、
printf("type=%#x\n",TYPE_PACE);
を実行するっていうのも実現したいのですがどうしたらよいのでしょうか。
switchは使わずに(関数部に追加なし)でです。
よろしくお願いします。