-------------------------------------------------------------------------- 藤原さん、今晩は。小泉@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で有っても、 コンパイラが型変換してくれるかもしれませんね。ただ、ワーニン グが出てきて、多用すると煩わしくなるかもしれません。 -------------------------------------------------------------------------- テクノブレーンズ(株)小泉 薫 --------------------------------------------------------------------------