重複の可能性:
ボイドキャスティングは何をしますか?
私はちょうどプロジェクトを閲覧していて、これを見つけました
//This is in a .cpp file
#if xxx == 5
(void)var;
#endif
これは何をし(void)var
ますか?これを行う上での重要性。と関係があると聞いたことがありcompilation
ます。
これが一般的である場合に備えて、c と cpp タグの両方を追加します。
重複の可能性:
ボイドキャスティングは何をしますか?
私はちょうどプロジェクトを閲覧していて、これを見つけました
//This is in a .cpp file
#if xxx == 5
(void)var;
#endif
これは何をし(void)var
ますか?これを行う上での重要性。と関係があると聞いたことがありcompilation
ます。
これが一般的である場合に備えて、c と cpp タグの両方を追加します。
(void)var;
このステートメントは事実上何もしません。ただし、コンパイラのサイレンシングに役立ちます。
これは主に、未使用の変数の警告を回避するために行われます。
@vonbrand のコメントへの返信。これが役立つ状況を以下に示します。
たとえば、gcc では-Werror
、makefile でコンパイル オプションがデフォルトで使用され、プロジェクト全体で変更することが望ましくない場合があります。その上、それは完全に無害であり(void)var;
、任意の変数に対して実行できます。したがって、状況によってはプログラマーの生活を楽にすることがなぜ悪い考えなのか、私にはわかりません。
したがって、未使用の変数を削除することが常に望ましいとは限りません。これを行うと、後で必要になったときにさらに多くの作業が必要になります。
void へのキャストは、未使用の変数に関するコンパイラの警告を回避するために行われます。
これは、コンパイラのフラグ -Wno-unused-variable を使用してグローバル レベルで行うこともできます。