8
私は私のプログラムでfloat
変数を初期化するとき、私は一般的のようなベクトルがあります。フロートを0.fで初期化する必要がありますか?
Vector forward(0.f,0.f,-1.f),right(1.f,0.f,0.f),up(0.f,1.f,0.f)
(ベクターはstruct Vector{ float x,y,z; };
のようなわずか3山車です)
をこれは、など読みやすいくらいに見えます
Vector forward(0,0,-1),right(1,0,0),up(0,1,0)
float
変数をfloat
で初期化する必要がありますか? float
を初期化するために整数(またはdouble
秒)を使用すると、何かを失うか何らかのペナルティが発生しますか?
stl :: vectorと混同しやすいので、実際にVectorを構造体名として使用するべきではありません。代わりにvector3fやvector3dのような名前をつけることもできます – SinisterMJ
FORTRANでは適切な割り当てを使用する必要があります。したがって、ゼロの倍精度は0.0e0または0.0e0ではなく0.0d0でなければなりません。FORTRANで始まる多くの人々はこの動作によって焼き付けられ、明示的に0.fをC++コードに入れます。対照的に、C++は、実際にはリテラル0または1を適切な浮動小数点値にする方法を指定します。 –
私は初期化が問題ではないと思います。しかし、比較した場合、より大きなデータ型が使用され(0.0に対して0.0f)、ゆっくりとする傾向があります。明らかにユースケースに依存しますが、正しいタイプを使用していない場合、あなたは間違いなく変換を行っています。コンパイル時または実行時。これを避けると時間が節約されます。 – stefan