enum可以代替部分#define宏定義,如果宏定義為數組個(gè)數,不能用enum替代。
例:
enum ata_tf_protocols
{
ATA_PROT_UNKNOWN,
ATA_PROT_NODATA,
ATA_PROT_PIO,
ATA_PROT_DMA,
ATA_PROT_NCQ,
ATAPI_PROT_NODATA,
ATAPI_PROT_PIO,
ATAPI_PROT_DMA,
};
這樣就可以限定ata_tf_protocols 值的類(lèi)型為0~7的值,超出此范圍的編譯器會(huì )報錯。