我正在做一個軟核處理器的編程,來自Altera的Nios II,下面是一個教程中的代碼,我設法得到代碼通過在硬件(DE2板卡)上測試來工作,但是我無法理解代碼。需要關於此語法的幫助:「#define LEDs(char *)0x0003010」
#define Switches (volatile char *) 0x0003000
#define LEDs (char *) 0x0003010
void main()
{ while (1)
*LEDs = *Switches;
}
我知道#define
的是,它無論是用於定義不變,或宏,但
- 爲什麼在上面的代碼中,有鑄像,
(char *) 0x0003010
,在#define
? - 爲什麼2個常數
Switches
和LEDs
的行爲像一個變量而不是一個常量?
預處理器,不是編譯器。 – DiGMi 2010-06-10 01:57:14
@dig:在C中,預處理階段是編譯過程的一部分,並且說編譯器執行這些任務是正確的,即使某些實現可能使用單獨的程序來執行預處理階段。 – 2010-06-10 02:01:33
@詹姆斯:但在這種情況下,更清楚地說出「預處理器」,你的意思是「預處理器」。 – dmckee 2010-06-10 02:05:42