私はソフトコアプロセッサ、アルテラのNios IIのプログラミングを行っています。以下は、チュートリアルの1つにあるコードです。ハードウェア(DE2ボード)でテストすることでコードを機能させることができますが、理解できませんでした。コード。
#define Switches (volatile char *) 0x0003000
#define LEDs (char *) 0x0003010
void main()
{ while (1)
*LEDs = *Switches;
}
私が知っているのは、定数またはマクロ#defineを定義するために使用されますが、  
- (char *) 0x0003010なぜ上記のコードで、、のようなキャストがあり- #defineますか?
- なぜ2つの定数でSwitchesありLEDs、定数ではなく変数のように機能するのでしょうか。