main.c ファイルのメソッドで、irq_type 型の変数 irq_raised を宣言します。別のファイルの typedef で irq_type を定義し、それを main.c の先頭に #import しました。
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'
どうしてこれなの?