最近、このプログラミングのイディオムに出会いました。
const float Zero = 0.0;
これは比較で使用されます:
if (x > Zero) {..}
これが実際よりも効率的であるか、読み取り可能または保守可能であるかを誰でも説明できますか?
if (x > 0.0) {..}
注:この定数を定義する他の理由を考えることができますが、このコンテキストでの使用について疑問に思っています。
xtypeを持っている場合float、にx > 0.0強制的に昇格させますがdouble、効率が低下する可能性があります。それはあなたの定数(例えば正しい型を持っているだけで確認することのために、名前付き定数かかわらを使用するための十分な理由ではない0f、float(0)またはdecltype(x)(0))。
13.37でなくfloat、doubleです。だからあなたが望むなら、floatそれはあなたの家庭教師が正しかったと考えられます。一部のコンテキスト(フロートへの割り当てなど)13.37は暗黙的に必要なものに変換されfloatますが、他のコンテキスト(テンプレートタイプの推論など)では変換されませんが、static const float常に意図したタイプとして開始されます。したがって、よりタイプセーフです。あなたの心、そうだろう13.37f!ただし、「タイプセーフ」以外にマクロを回避する理由は他にもあります。そのため、先生があなたに不適切な議論を与えていた可能性があります。