冨田@湘南と申します。 初投稿ですが、よろしくお願いいたします。 > 落合です。 > > > プログラミング言語C 第2版を読む限り日立のヘッダーは間違っていない様で すよ。 > > そうなんですか。それはそれで表現上正しくて、やっぱりコンパイラ依存なんです ね。 > 日立のコンパイラはそれで動くので問題ないと思いますが、できれば機種依存しない > ような定義になっていると我々ユーザからしてみれば有り難いですね。 途中から見ましたのでSubjectの主旨と違うかもしれませんが。 私が使っているイエローソフトのCコンパイラのドキュメントに 以下のような記述があります。 <以下引用> ・・・日立社配布のI/Oヘッダファイルは弊社製Cコンパイラでは動作しません。 I/Oレジスタを構造体、およびビットフィールドで割り付けることはプログラムの 互換性をまったく無視しており良いことではありませんので弊社では勧めて おりません。・・・ どうしても、I/Oレジスタを構造体、およびビットフィールドで定義したい 場合は次のことに注意してください、 ①ビットフィールドはLSBから割り付けます。 ②構造体の2番目以降のオフセットがいくつになるかはコンパイラが決めますので プログラマが仮定しない。 (具体的には、構造体のメンバを一つだけにしてください。こうすればどのコンパ イラ でも動作します。一つの構造体に2つ以上のI/Oを定義している場合は1つずつに 分けてください。) <ここまで引用> # 以前、CQ出版社主催で落合さんが講師をされていたセミナーを受けさせて # いただきました。 # その節は、お世話になりましたm(__)m。 ---------------------------------- Hiroyuki Tomita tomita-h@xxxxxxxxxxxxxxxxxxxx