長年プログラマやってたりするわけですが、いまだに満足できるコードがかけません。
しかし今日でっちあげてしまったコードは限界突破していました。
本質的な部分を書くと以下のようになります。
float value = ...;
int v = *(int*)&value;
func(v);
void func(int v)
{
printf("%f", v);
}
いやもう、何と言っていいやら。
そんなキャストすんなとか、なんで実数を整数で渡すんだとかありますが、それ以前にこれではまともに動きません。だって %f は double だから。
それに気づくのに 10 分以上かかってしまいました。
実際にはインタプリタとステートマシンを経由し、いくつものクラスを通り抜けた結果なので、そのどこかがおかしいんじゃないかと探りまわっていたせいですが。
他人がこんな腐ったコード書いたらぶん殴るところですが、自分に甘く他人に厳しくってことで。
いじょ。