2013-12-17 48 views

回答

2

name()方法不能返回null。如果該值不符合枚舉值,它將返回一個空字符串。建議進行空字符串檢查。

IEEE std 1800-2012 § 6.19.5.6名稱()

名稱()方法返回給定的枚舉值的字符串表示引用。如果給定的值不是枚舉的成員,則name()方法將返回空字符串。
1

不,您不需要擔心null枚舉。然而,枚舉可能是未初始化的,如果它不具有對應於0

例如狀態:

typedef enum {STATE0, STATE1} plain_enum; 
typedef enum {VAL0=1, VAL1} special_enum; 

module test; 

    initial begin 
    plain_enum plain; 
    special_enum special; 
    $display("plain: %s", plain.name()); 
    $display("special: %s", special.name()); 
    end 

endmodule 

返回:

# plain: STATE0 
# special: 

因爲special_enum的狀態對應的沒有到0

編輯/重新運行代碼:http://www.edaplayground.com/s/4/647