こんにちは。平田@マイクロフトです オプティマイズされないようにvolatile指定すれば?と書こうと思ったらすでにかか れていたので、H8用の某社のCコンパイラの話題 あるハードで、ポートをリードすると処理が完了するようなポートがあったので、 volatile char *port = (char *)0xxxxxx; char dummy; *port; // *1 dummy = *port; こんなコードを書いたら *1が丸々削除されていました。portをvolatileしていたの でオプティマイズされないつもりだったのですが、オプティマイズオプションをoff にしてもコードが実行されません。 メーカーに問い合わせたところ代入されていない読み込みはコード化されない仕様 だそうで(まぁ理屈は納得できるけど・・・(^_^;) 別の変数を用意して代入式にしたら読み込んでくれました。 ハードをアクセスするためのコードを書いていると結構オプティマイザの裏をかく ことが多いようで... ================================ 平田祥司(shouji@xxxxxxxxxxxxx) 株式会社マイクロフト(www.microft.co.jp) 神奈川県横浜市青葉区あかね台2-11-29 ================================