如以下代碼所示,cvmx_fau_reg_64_t中的0和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;
請注意,_enum-constants_總是類型爲「int」,而'enum'類型本身也不大於'int'。因此,對於'int'小於64位的典型體系結構,您會遇到使用較大常量的問題。 ()這只是看起來可疑的名字) – Olaf