[H8-ML(4627)] Re: H8/3052で浮動小数点演算がうまくできず困っています。
From: "K.Koizumi" <koizumi@xxxxxxxxxxxxxxxxxxxxxxx>
Date: 2004年04月08日(木)18時51分02秒
--------------------------------------------------------------------------

    藤原さん、今晩は。小泉@TBCです。

 -> 使い方が間違っていた正でもあるのですが、これは、
 -> 
 -> 	unsigned int(fc_3);	//型変換
 -> 
 -> によって、ここで、ローカル変数である、fc_3 が新たに定義されてしまった
 -> からです。
 -> この時(自動変数なので)初期値は暗黙のうちに「0」になります。

      なるほど!確かにそうですね。これは見落としておりました。
    御見事です!道理でエラーにならない訳です。

 -> 他の事情もあり、もしも、fc_1, fc_2, fc_3 を test() の中でしか使わな
 -> いのであれば、test() の中で定義する方が安全です。

      「グローバル(大域)変数は、なるべく少なく」も、振れておく
    べきでしたでしょうか…。グローバル変数のミスは、全体に波及し
    ますから、要注意です。 > C言語初心者の皆様。

 -> >         fc_dbg1 = (unsigned int)fc_3; // これが正しい型変換

 ->  ついでに言えば、この場合明示的な型変換は不要です。
 ->   fc_dbg1 = fc_3;
 ->  で、自然な型変換ができます。

      今回の場合、誤って生成してしまった fc_3 と、fc_dbg1は同型
    ですから型変換は無用ですね。仮に、グローバルのfc_3で有っても、
    コンパイラが型変換してくれるかもしれませんね。ただ、ワーニン
    グが出てきて、多用すると煩わしくなるかもしれません。

--------------------------------------------------------------------------
                 テクノブレーンズ(株)小泉  薫
--------------------------------------------------------------------------

スレッド概略
[4619(R)](起点)
 └[4626(U)]
   └[表示中]
     └[4631(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]