最近の gcc だと、可変長引数マクロを使っても特に警告を出さないようです. そこで、以下のようなマクロを定義しておくと、デバッグメッセージのON/OFFが手軽にできて便利です. #ifdef __DEBUG__ #define dprintf(fmt,...) \ printf("[%s]%d:" fmt "\n",__FUNCTION__,__LINE__,__VA_ARGS__) #define dputs(str) \ printf("[%s]%d:" str "\n",__FUNCTION__,__LINE__) #else #define dprintf(fmt,...) while(0){} #define dputs(str) while(0){} #endif これを使ったサンプルプログラムです. //ここで ON / OFF を切り替える //#define __DEB