椚座です。 On Fri, 21 Jan 2005 12:41:52 +0900 "Kazuhiro Nonaka" <non@xxxxxxxxxxxxx> wrote: > > 解釈によりますが, > > > > #define FPGA (*(volatile _WORD *)0x20000) > > _WORD data; > > data=FPGA; > > これは、何のことだか、理解できないのです。 > data=FPGA;ってのは何をすることになりますか? > そして、 > 20004番地からに0x1234を書き込みたい時ってのは > どうすればいいのでしょうか? すみません,あくまで言語的に正しくするための修正例だと 思って書いたので,実用的なコードではありませんでした。 これだと,0x200000 番地の値が data に代入されるだけで, 0x200004 とかにはアクセスできません。 二つ目の方は,実際に使えます。以下は,どちらも同じ意味に なります。 *(data+2)=0x1234; data[2]=0x1234; あと,先のメールに書いた例では括弧はありませんでしたが, #define FPGA ((volatile _WORD *)0x20000) と,全体に括弧を付けておけば,以下の例のように, FPGA 自体を変数みたいに使うこともできます。 *(FPGA+2)=0x1234; FPGA[2]=0x1234; #define されたものに添え字を付けたりして使うのは, スタイル的にあんまり好きじゃないのですけれど・・・。 椚座 淳介 (Junsuke Kunugiza) E-Mail: jk@xxxxxxx http://www.exp.org/