Назначение [custom typedef] из несовместимого типа 'int'

В методе в моем файле main.c я объявляю переменную irq_raised, имеющую тип irq_type. Я определил irq_type в typedef в другом файле и #импортировал его вверху main.c.

typedef enum
{
  IRQ_NONE = 0x0000,
  IRQ_VBLANK = 0x0001,
  IRQ_HBLANK = 0x0002,
  IRQ_VCOUNT = 0x0004,
  IRQ_TIMER0 = 0x0008,
  IRQ_TIMER1 = 0x0010,
  IRQ_TIMER2 = 0x0020,
  IRQ_TIMER3 = 0x0040,
  IRQ_SERIAL = 0x0080,
  IRQ_DMA0 = 0x0100,
  IRQ_DMA1 = 0x0200,
  IRQ_DMA2 = 0x0400,
  IRQ_DMA3 = 0x0800,
  IRQ_KEYPAD = 0x1000,
  IRQ_GAMEPAK = 0x2000,
} irq_type;

Я могу присвоить эту переменную одному из них следующим образом:

irq_raised = IRQ_NONE;

Однако, когда я пытаюсь сделать следующее:

irq_raised |= IRQ_HBLANK;

Я получаю сообщение об ошибке:

Assigning to 'irq_type' from incompatible type 'int'

Почему это?

5
задан Riley Testut 28 May 2012 в 18:11
поделиться