[解決済み] C 言語の浮動小数点数リテラルを double ではなく float にする。
2023-07-06 13:19:42
質問
C言語では、浮動小数点数リテラル(例.
1.23
など)は
double
. その結果,それらを含む計算はすべてdoubleに昇格します.
私は単精度のみをサポートする浮動小数点ユニットを持つ組み込みリアルタイムシステムで作業しています (
float
) 数値のみをサポートする浮動小数点ユニットを持つ組み込みリアルタイムシステムに取り組んでいます。私の変数はすべて
float
で、この精度で十分です。必要ない(余裕がない)のは
double
はまったく必要ありません。しかし、次のようなものがあるたびに
if (x < 2.5) ...
が書かれると、災難が起こります。速度が最大で2桁も低下することがあります。もちろん、直接的な回答は
if (x < 2.5f) ...
が、これはとても見逃しやすく(手遅れになるまで発見しにくい)、特に「設定」値が
#define
を別のファイルに書き込んだ場合、特にそうです。
では、コンパイラがすべての (浮動小数点) リテラルを float として扱うように強制する方法はあるのでしょうか。
f
? 仕様に反していても構わないので。あるいは、他の解決策があれば教えてください。ちなみにコンパイラはgccです。
どのように解決するのですか?
-fsingle-precision-constant
フラグを使用することができます。これは、浮動小数点数の定数が正確でない場合でも単精度でロードされるようにします。
注- 倍精度変数に対する演算でも単精度定数が使用されます。
関連
-
警告:代入がキャストなしで整数からポインタを作成する場合の修正方法に関する警告
-
[解決済み] Valgrind が初期化されていないバイトについて警告する
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] 通貨を表すのにDoubleやFloatを使ってはいけないのですか?
-
[解決済み] 除算を強制的に浮動小数点にするにはどうしたらいいですか?除算は0に切り捨てられ続けますか?
-
[解決済み] JavaScriptで浮動小数点数の精度を扱うには?
-
[解決済み] floatとdoubleの違いは何ですか?
-
[解決済み] ストラクチャーとユニオンの違い
-
[解決済み] C言語で "unsigned long "をprintfする方法は?
-
[解決済み】浮動小数点値の比較はどのくらい危険か?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
構造体の配列--[エラー] '['トークンの前に一次式があることが予想される
-
Cエラー [エラー] 代入_Ashesの左オペランドにlvalueが必要です-プログラマーズ・シークレット
-
[解決済み] C言語で%sを正しく使う - 超基本レベル
-
[解決済み] Windows用Cコンパイラ?[クローズド]
-
[解決済み] ⑭と⑯は何のためにあるのですか?
-
[解決済み] c または c++ 用のシンプルな 2 次元クロスプラットフォームグラフィックスライブラリ?[クローズド]
-
[解決済み] Linuxカーネルにおけるcontainer_ofマクロの理解
-
[解決済み] printfにおけるdoubleの正しい書式指定子
-
[解決済み] 講師が書いたC言語のファイルは、なぜ最初の行に#が一つ付いているのですか?
-
[解決済み] C言語でファイルサイズを取得するには?[重複]する