簡體   English   中英

將枚舉映射到C中的字符串的好方法

[英]good way to map enums to strings in C

我有一堆枚舉(如果您想知道的話,來自libvirt庫):

enum whatever {
    VAL_A = 1
    VAL_B = 2
    ...
}

如何將它們轉換為有意義的字符串? 即,VAL_A的狀態為“意思_A”,VAL_B的狀態為“意思_B”,依此類推。 在php或perl或python中,我將生成一個key:val對,並以O(1)時間返回結果。 有沒有一種有效的方法可以將這些映射到C中有意義的字符串? 我當時在想換一個語句,但是想知道更好的方法。

謝謝,

維克。

嘗試將其用作數組索引:

char *strs[] = {"meaning_A", "meaning_B", "etc."};
strs[(int)enumvar - 1];

暫無
暫無

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

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