C 枚举中的值是多少?
如以下代码所示,0和CVMX_FAU_REG_64_ADDR(0)在CVMX_FAU REG_64_t中有什么区别C 枚举中的值是多少?,c,enums,C,Enums,如以下代码所示,0和CVMX_FAU_REG_64_ADDR(0)在CVMX_FAU REG_64_t中有什么区别 #define CVMX_FAU_REG_64_ADDR(x) ((x <<3) + CVMX_FAU_REG_64_START) typedef enum { CVMX_FAU_REG_64_START = 0, CVMX_FAU_REG_64_END = CVMX_FAU_REG_64_ADDR(0), }
#define CVMX_FAU_REG_64_ADDR(x) ((x <<3) + CVMX_FAU_REG_64_START)
typedef enum
{
CVMX_FAU_REG_64_START = 0,
CVMX_FAU_REG_64_END = CVMX_FAU_REG_64_ADDR(0),
} cvmx_fau_reg_64_t;
#定义CVMX_FAU_REG_64_ADDR(x)((x在编写的代码中,两个值都==0。实际值没有差异。那么CVMX_FAU_REG_64_START和CVMX_FAU_REG_64_END之间的区别是什么?它们的拼写方式。基本上有两个标识符解析为同一事物。请注意,枚举常量始终是typeint
和enum
types本身也不大于int
。因此,对于int
小于64位的典型体系结构,使用较大的常量会遇到问题。()只是名称看起来可疑)