enum
{AD_PCI_BAR0 =0;
AD_PCI_BAR1 =1;
AD_PCI_BAR2 =2;
AD_PCI_BAR3 =3;
};typedef enum
{GS3401_REG =AD_PCI_BAR0;
GS3401_REG_IO =AD_PCI_BAR1;
GS3401_SPACE0 =AD_PCI_BAR2;
GS3401_SPACE1 =AD_PCI_BAR3;
}GS3401_ADDR;
enum是枚举类型吧,上面的enum和 typedef enum有什么区别啊?
{AD_PCI_BAR0 =0;
AD_PCI_BAR1 =1;
AD_PCI_BAR2 =2;
AD_PCI_BAR3 =3;
};typedef enum
{GS3401_REG =AD_PCI_BAR0;
GS3401_REG_IO =AD_PCI_BAR1;
GS3401_SPACE0 =AD_PCI_BAR2;
GS3401_SPACE1 =AD_PCI_BAR3;
}GS3401_ADDR;
enum是枚举类型吧,上面的enum和 typedef enum有什么区别啊?
TEnum = (AD_PCI_BAR1, AD_PCI_BAR2, AD_PCI_BAR3, AD_PCI_BAR4);typedef只不过定义一个枚举类型的别名为GS3401_ADDR, 跟enum没关系
TEnum = (AD_PCI_BAR1, AD_PCI_BAR2, AD_PCI_BAR3, AD_PCI_BAR4);type
GS3401_REG =AD_PCI_BAR0;
GS3401_REG_IO =AD_PCI_BAR1;
GS3401_SPACE0 =AD_PCI_BAR2;
GS3401_SPACE1 =AD_PCI_BAR3;
GS3401_ADDR = (GS3401_REG, GS3401_REG_IO, GS3401_SPACE0, GS3401_SPACE1);这样就OK
{AD_PCI_BAR0 =0;
AD_PCI_BAR1 =1;
AD_PCI_BAR2 =2;
AD_PCI_BAR3 =3;
};这仅仅是定义了几个常量而已typedef enum
{GS3401_REG =AD_PCI_BAR0;
GS3401_REG_IO =AD_PCI_BAR1;
GS3401_SPACE0 =AD_PCI_BAR2;
GS3401_SPACE1 =AD_PCI_BAR3;
}GS3401_ADDR; 用常量代替0,1,2,3,为了方便修改或者增加可读性所以可以这样定义:
const
AD_PCI_BAR0 =0;
AD_PCI_BAR1 =1;
AD_PCI_BAR2 =2;
AD_PCI_BAR3 =3;type
GS3401_ADDR = (GS3401_REG=AD_PCI_BAR0, GS3401_REG_IO=AD_PCI_BAR1, GS3401_SPACE0=AD_PCI_BAR2++, GS3401_SPACE1=AD_PCI_BAR3);