2016-04-11 154 views
0

如以下代碼所示,cvmx_fau_reg_64_t中的CVMX_FAU_REG_64_START和CVMX_FAU_REG_64_END有什麼區別?枚舉值是什麼?

`#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;` 
+1

可能的複製[枚舉值是什麼?](http://stackoverflow.com/questions/36539048/what-is-the-value-in-the-enum) – Necreaux

+0

是的,他們是同一個問題,但我還沒有得到我的答案,所以我再問一次。 – zhengk

回答

0

CVMX_FAU_REG_64_START明確設置爲0以: CVMX_FAU_REG_64_START = 0

CVMX_FAU_REG_64_END被設定爲3位限定了頂部的0

0 << 3移位0以上的輸入的功能,這是仍爲0,加上CVMX_FAU_REG_64_START的值,這也是0.(0 < < 3)+ 0 = 0,因此它們都是0.