C言語のマクロで便利そうなもの

C言語のマクロで面白そうなものをメモ!

#include

#define _PFP(str) printf("%s\n", str)
#define ASIZEOF(array) (sizeof(array) / sizeof(array[0]))
#define FOR(i, j) for(((i) = 0); ((i) < (j)); ((i)++))
#define ISR(str) str, #str

enum etest{ aaa, bbb, ccc };

typedef struct _stest
{
    enum etest yyy;
    char *name;
}stest;

int main()
{
    int i;

    stest ts[] = { ISR(aaa), ISR(bbb), ISR(ccc) };

    FOR(i, ASIZEOF(ts))
        _PFP(ts[i].name);

}

enumとマクロの組み合わせ
for文
配列の要素数を求める

の3つが特に面白いとおもう。
積極的にマクロを使うのもいいかなーっ

ただ、マクロが嫌いな人もいると思うので、使っていいのか悩みどころ。。