平田@マイクロフトです なんでそんなにビットフィールドにこだわらなければいけないんだろうとちょっとめ んどくさくなりつつ(^_^; > そんな事は無いですよ、平田さんが、同じメーカー、同じCPUのバージョン > アップなのに、トラブルに遭遇したと書いているからです。 > でもそれは、そのメーカーの問題であり、ビットフィールドの問題では無いで > しょう。 ちがうでしょ ビットフィールドの実装はもともと仕様ではっきり決まっていない部 分ですから、どう実装しようとコンパイラメーカーの自由です。実装方法を変えたか らといって、メーカーの責任だったり、問題だったりではありません。そんなあいま いな機能をあてにしてI/O処理を書いたプログラマの責任です。 > 『シビアな制御には使わないでくれ』なんて言うメーカーが有るのでしょうか これは僕の書き方が悪かったかな。「シビア」は制御(ミッションクリティカルな応 用)にかかっているのではなく、ビット位置にかけたつもりです。 たとえば8ビットI/Oの下から3ビット目をON/OFFするといった処理に、ビット フィールドを使用して操作するような記述をすべきではないと思います。なぜならそ の処理系の、そのバージョンで該当するビット位置がON/OFFできているだけで、将来 にわたって同じソースをコンパイルして同一のビット位置がON/OFFできるとは限らな いからです(そしてI/Oの同一のビット位置をON/OFFしなくなったからといって、メー カーのせいにするのは筋違い あくまで不定なものを当てにしたプログラマーが悪 い)。 処理系を変えたり(バージョンが変わったり(^_^;、オプティマイザのパラメータを変 えるたびにコンパイラが吐き出したアセンブラソースを確認しながら、それでもビッ トフィールドを使用してI/O処理を記述するというなら反対はしませんが、私はしま せんと言いたかったわけです。 -- ===================================== 平田祥司(shouji@xxxxxxxxxxxxx) 株式会社マイクロフト(www.microft.co.jp) 神奈川県横浜市青葉区あかね台2-11-29 =====================================