使わない仮引数

signal handler だとか、POSIX Thread の start routine なんかでは関数の仮引数を使わないなんてことは良くあると思うけど、これだと gcc で -W オプションを指定すると "unused parameter" とか言われてうっとうしかったりする。
でまぁ、そういうときは、こうすれば良いらしい。

#if !defined(UNUSED)
# if defined(__GNUC__)
#  define UNUSED __attribute__((__unused__))
# else
#  define UNUSED
# endif
#endif

static void handle_sigint(int sig UNUSED)
{
    exit(1);
}

そして dialog なんかでは

#ifndef GCC_UNUSED
#define GCC_UNUSED /*nothing*/
#endif

となっているけど、GCC_UNUSED というマクロが有効だった時代があったんだろうか。とりあえず、gcc 4.1 では定義されていないようだ。
ちなみに、C++ だと仮引数名なしでも OK なので、

static void handle_sigint(int)
{
    exit(1);  
}

でよかったりする。