把列舉轉化為相應的字串
今天無意間就需要這樣的乙個功能,從列舉值得到對應的字串表示,乙個容易想到的方法就是再造個字串陣列,和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 根...