enum可以代替部分#define宏定義,如果宏定義為數(shù)組個(gè)數(shù),不能用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 值的類型為0~7的值,超出此范圍的編譯器會(huì)報(bào)錯(cuò)。