気まま研究所ブログ

ITとバイク、思ったことをてきとーに書きます。

C

浮動小数点数演算を模倣して誤差を見てみた

浮動小数点数が値によっては誤差が発生することは広く有名な話だと思います。 例えば、「0.1 + 0.2 == 0.3」は多くの言語処理系において等値ではありません。 というのは私も知っていましたが、ではどうして等値ではないのかと聞かれるとフワーッとしたこと…

func(i, i++)の落とし穴 評価順序の違い

Twitterで流れてきてふと気になったので備忘録。 もっぱら高級言語ばっかり触ってきたので一瞬わからなかったのですが、C言語ではこのようなコードはコンパイラ依存で結果が変わります。 ANSI-Cの規格書に目を通したわけではないので間違いがあったらご指摘…

C言語 未初期化変数の罠

久しぶりにプログラミング関連の話題です。 つい先日友人からC言語で質問がありまして、なぜかprintf関数を入れると正しく動くけどコメントアウトするとバグるというかなり不思議な不具合でした。 スタックの問題だろうなと思ったものの、久しぶりにC言語を…