出力を入力へ

プログラミングに関する基本的な事を中心にまとめます

引数を利用しない場合でもWarningを出さない

いまさらながら知ったこと。

C言語プログラミング時にコンパイルオプションにWallを指定するなど、
利用していない引数がある場合に警告を出している。
通常はこれば便利だけども、どうしても避けられない場合もある。

これを解決する方法として、-Wno-unused-parameterを使うことで
利用していない引数があっても警告を出さないこができるが、
コンパイル単位でしか指定できないという欠点がある。

関数ごとに解決する方法として以下の方法がある。

void func(int x)
{
    (void) x;

    ....
}

もしくは、もっとわかりやすく

#define UNUSED(x) ((void)x)

void func(int x)
{
    UNUSED(x);

    ....
}

このように関数内で指定することで、
以降の処理で引数を参照しなくてもWarningが出なくなる。
わざわざコンパイル単位で無効にする必要がなくなるので便利。