私の小さな C++ 関数は、単純なタイムアウト値を計算する必要があります。
CalcTimeout(const mystruct st)
{
return (st.x + 100) * st.y + 200;
}
100 と 200 という数字は後でコードを読むとわかりにくいので、#define を使用したいと思います。しかし、これらの定義はこの関数にのみ必要です。関数内で定義できますか? この方法の利点は次のとおりです。
- それは非常にローカルな価値観であり、他の誰もそれについて知る必要はありません
- 使用されている場所に近づくと、意図が明確になり、他の用途がなくなり、ローカル変数のようになります (そうでないことを除いて)。
欠点は、ローカル変数/定数のようなものを定義するのはかなり大雑把な方法ですが、明らかにローカルではありません。
それ以外では、C++ 関数内で #define するのは奇妙でしょうか? ほとんどの場合、ファイルの先頭で #defines を使用します。このような固定のローカルハードコード値を置き換える際に、const変数を使用する方が良いですか?
目的は、コードをより読みやすく/理解しやすくすることです。