Я занимаюсь программированием софткорного процессора Nios II от Altera, ниже приведен код в одном из туториалов, мне удалось заставить код работать, протестировав его на оборудовании (плата DE2), однако я не смог понять код.
#define Switches (volatile char *) 0x0003000
#define LEDs (char *) 0x0003010
void main()
{ while (1)
*LEDs = *Switches;
}
Что я знаю о #define
, так это то, что он используется для определения константы или макроса, но
- почему в приведенном выше коде есть приведение типа
(char *) 0x0003010
в#define
? - почему две константы,
Switches
иLEDs
, действуют как переменная, а не как константа?