[H8-ML(5813)] Re: [H8-ML(5811)] Re: C言語の基本でしょうが
From: "dimension" <dimension4500c@xxxxxxxxxxx>
Date: 2006年01月29日(日)21時00分33秒
katsuragi さん

> > この時は、double と float は同じにコンパイルされ(HEWの初期のもの)
> > どちらも倍精度浮動小数点形式になってました。
> > (演算コード(機械語)の結果まではチェックしていません。)
> 
>  これはないと思いますよ。
>  HEWならば、コンパイラはANSI規格準拠ですから、floatは単精度で演算するはず。
>  きっと浮動小数点定数に接尾子 f や F を付け忘れたのでは?

なるほど。定数の後ろにはf、Fをつけないと、doubleになるのですね・・・orz
何しろ当方の持ってるK&Rは、ANSI策定前の教本(初版)なので、
その後、ANSIで知らぬ間に言語仕様が変更・追加され、
K&Rの教本も、ANSI規格に対応して、内容がかなり改定されてしまいました・・・orz

例えば、関数のプロトタイプ宣言など、ANSI規格の仕様は、当方の初版K&Rには
何も書かれていません。
コンパイラ毎にばらばらだったC言語仕様が、ANSI規格策定がされて決まったことを
知らない時期があり、後に、K&R初版言語仕様と、ANSI規格C言語仕様の違いで面くらった
経験があります。
最初からANSI Cに改定されたC言語教本で習ってる人や、ANSI規格策定の時期に
うまく追従した人は、それ違いますよ、という仕様部分があると思われます。

ちなみにその時は、Windows95->98の切り替え時期で、HEWを走行させるのにも苦労しました。
Windows95パソコンではHEWは何度でも正常にコンパイルできるものの、
Windows98パソコンに交替したら3回ほどコンパイルを繰り返すとリソース不足となり
Windows98がハングアップを繰り返し、パソコンが固まってしまうのでした。
HEWを使うことが優先だったため、新パソコンごと返品したりするはめに・・・
これは多分Windows95->98への仕様変更が原因と思います。

近年では、もはや、何それ今頃・・・と言われそうなBorland C++4.0で、
using namespace std ;
などの文がコンパイルエラーになり、何故だろう?・・・と思っていたら、
知らぬ間にC++言語仕様が変わっており、古いBorland C++4.0では
新しいC++言語がコンパイルできず、急遽、新しいC++言語対応の
Borland C++5.5を入手した、・・・という失敗をしでかしました。
この時にも自分の無知・愚かさを痛感しました・・・orz

ただ、BorlandがこのようなFreeのC/C++コンパイラを出してくれるのは大変に
ありがたいことと感謝しています。

> > H8にも積和演算機能を入れたみたいな話も以前聞きましたが、
> > その当時は職業人でしたので応用先は限定されました。
> > 使う人は、DSPでは、TIかアナデバが主流でしょうかね。
> 
>  H8で積和を持っているのはH8S/2600のCPUですね。
>  これだけMACレジスタがありますから。
> 
>  また、SHのHEWにはDSP-C言語の使用があり、固定小数点の演算をC言語で記述できるみたいです。
>  実際に使ったことはありませんが。。。

固定小数点と浮動小数点の違いによる計算で、計算座標の値がずれた失敗経験があります。
今でも精度の高い数値計算は難しいと思ってます。

dimension 


スレッド概略
[表示中](起点)


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


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