簡體   English   中英

從C中的typedef枚舉獲取數組,索引值

[英]Get array, value at index from typedef enum in C

如果有這樣的枚舉:

typedef enum {
    ValueOne = /* some arbitrary number, NOT necessarily 0 */,
    ValueTwo = /* another number, NOT necessarily consecutive */
} MyEnumeration;

我想知道是否有任何方法可以從中獲取數組並在不執行此操作的情況下訪問特定索引處的值:

int array[2] = {ValueOne, ValueTwo};
MyEnumeration value = array[provided_index];

我的問題是在我的項目中,枚舉有10-15個值,而我不想在每個值中創建一個數組。

[編輯]:我可以看到這是不可能的,因為typedefenum不綁在一起的一切,但我想它不會傷害要求的情況下,我失去了一些東西。

沒有。

您將必須同時為枚舉和數組編寫代碼,或者使用某種技術自動生成代碼以減輕維護負擔。

您可能會對本文感興趣: The New C:X Macros

我會完全取消枚舉。 如果必須將其存儲在數組中並作為枚舉存儲,那么實際上根本沒有意義。 枚舉是宏,它們實際上並不存儲任何信息,它們只是為數字創建名稱,我相信這些名稱在編譯時會被替換。 您可能只記得記住要在腦海中使用某些名稱的數字或使用#define更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM