把列舉轉化為相應的字串

2021-06-25 23:40:41 字數 721 閱讀 2204

把列舉轉化為相應的字串

今天無意間就需要這樣的乙個功能,從列舉值得到對應的字串表示,乙個容易想到的方法就是再造個字串陣列,和enum對應起來,顯然這個方法沒有可擴充套件性;第二種方法在stackoverflow上看到的就是巧妙的利用 巨集 來生成對應的字串陣列,感覺非常巧妙,易於擴充套件。下面是這兩種方法的**。

#include#includeenum cmd;

static inline char * cmd_str(enum cmd c);

return strings[c];

}int main(void)

方法2:

#include#include/*將相應的列舉型別轉為字串(這種方法很重要)*/

#define foreach_cmd(cmd) \

cmd(cmd_unspec) \

cmd(cmd_add) \

cmd(cmd_sub) \

cmd(cmd_multi) \

#define generate_enum(enum) enum,

#define generate_string(string) #string,

enum cmd_enum ;

static const char *cmd_string = ;

int main(void)

把字串轉化為型別

問題 可以得到型別的string格式的名稱,想要轉化為相應的型別?ps 今天定義了好多個列舉型別,把列舉名稱存放在乙個combobox類名,控制項值改變的時候要查詢出這個列舉的所有屬性集合,剛開始想到反射,由於效率和複雜程度的問題,想出了最佳解決方案,如下 此方法適用於所有類似需求 region 根...

把字串轉化為整數

將乙個字串轉換成乙個整數 實現integer.valueof string 的功能,但是string不符合數字要求時返回0 要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0。輸入乙個字串,包括數字字母符號,可以為空 如果是合法的數值表達則返回該數字,否則返回0 例子 21...

把字串轉化為型別

問題 可以得到型別的string格式的名稱,想要轉化為相應的型別?ps 今天定義了好多個列舉型別,把列舉名稱存放在乙個combobox類名,控制項值改變的時候要查詢出這個列舉的所有屬性集合,剛開始想到反射,由於效率和複雜程度的問題,想出了最佳解決方案,如下 此方法適用於所有類似需求 region 根...