移植性のあるCプログラミング

C言語を使って移植性の高いプログラミングを行うのは簡単ではありません。このブログでは、筆者自身の備忘録を兼ねて、移植性のあるプログラミングのノウハウを記録していきたいと思います。
<< November 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>
 
PROFILE
RECOMMEND
Cプログラミング診断室―さらに美しく健康的なプログラムのために
Cプログラミング診断室―さらに美しく健康的なプログラムのために (JUGEMレビュー »)
藤原 博文
私がある程度C言語でプログラミングができるようになった頃、この本の旧版を読みました。
非常に辛口の内容であり、読者によっては嫌悪感を抱く方もおられるかもしれませんが、「Cプログラミング診断室」は、C言語に関する数少ない有益な書籍のひとつです。もっとも、元の内容がかなり古いため、今となってはやや時代遅れとなった部分もあります。しかし、それを差し引いても、十分に読む価値のある一冊です。
RECOMMEND
新ANSI C言語辞典
新ANSI C言語辞典 (JUGEMレビュー »)
平林 雅英
まだC言語を覚えたてだった頃、この本の前の版である「ANSI C言語辞典」がボロボロになるまで活用しました。私が購入したC言語関連の書籍の中では、最もコストパフォーマンスが高かったと思います。
あまりにもボロボロになったので、改訂版にあたる、この「新ANSI C言語辞典」を購入しました。旧版を最初に手にしてから10年以上経ちますが、今なお手放すことができない必携の一冊です。
ARCHIVES
RECENT COMMENT
RECENT TRACKBACK
MOBILE
qrcode

無料ブログ作成サービス JUGEM
 
スポンサーサイト

一定期間更新がないため広告を表示しています


- | | - | -
float型対double型
どうも、「float型は遅い」という迷信がいまだに残っているようです。おそらく、そのような迷信の元となっているのはここではないかと思います。「Cプログラミング診断室」は名著ですが、全ての内容を鵜呑みにするには、少々古すぎます。

確かに標準化以前のC言語では、float型の変数はいったんdouble型に変換されてから処理されていたため、float型を使うとかえって遅くなっていました。しかし、現在ではfloat型はfloat型のままで計算することが基本になっており、JIS X3010:2003 6.3.18 通常の算術型変換 では「型が要求する精度や範囲を超えて表現してもよい」という、非常に消極的な表現しかされていません。

つまり、float型の計算はfloat型で行うけれども、何ならdouble型やlong double型を使ってもいいよ、という程度でしかないのです。実際、多くの処理系はfloat型の計算をfloat型のままで行いますし、float型を使った方がFPUは高速に処理します。ましてや、ローエンドの処理系で、FPUを持たないものや、FPUがあっても単精度しかサポートしない場合には、double型を使うと非常に高くつくことがあります。さらには、DSPのベクタユニットなどでは、float型専用の機能もあったりします。

動作に関しては、float型を使わずにdouble型だけを使っても、移植性が損なわれることはありませんが、double型の方が高速であることを期待して使用しているのであれば、ある意味で、移植性が損なわれているとも言えます。

スポンサーサイト

- | 23:34 | - | -
コメント
from: 通りすがり   2007/11/20 11:32 PM
勉強になりました!
迷信の元を見て「そうなのかっ!?」
と思って、さらに検索して、こちらに辿りつきました。
from: ななし   2008/04/02 10:44 AM
「迷信」という書き方は如何なものかと。
単に情報が古くなっただけでしょう。
from: たかぎ   2008/04/02 10:59 AM
> ななしさん
> 単に情報が古くなっただけでしょう。

確かにそうなのですが、いわゆる「迷信」と呼ばれているものの中には、古い情報をそのまま信じている類のものも少なくありません。

例えば、「夜に爪を切ると親の死に目に会えない」というのは、行灯の灯りで(現代のもののように安全ではない)爪切りを使うような無用心な者は親より先に死ぬという意味でしたが、すでに情報が古くなっています。そして、現代に「夜に爪を切ると〜」というと、もはや迷信の範疇ですね。

なお、「Cプログラミング診断室」が迷信を吹聴しているという意図はまったくありませんので、もしそのように取られたのであれば謝ります。
from: カナ   2011/08/28 8:54 AM

ちょっと聞いてよ押
こないだのオッサン、マジ半端ないんだけど。ヮラ
http://9yhscq3.x.ex-summer.net/9yhscq3/
コメントする









 
トラックバック
この記事のトラックバックURL
http://portable-c.jugem.jp/trackback/16