1、实现方法 在开发中遇到的一个场景,需要自动生成enum class,并且还要有enum与string相互转换函数,当需要扩展enum class的时候,只需要在初始化的时候改动 enum class,不需要改动enum与string相互转换函数,转换函数都是根据enum自动生成。 github tool/enum_class at main · C-CX/toolgithub.com/C-CX/tool/tr...
只是中間的程式碼透過前處理器以 VALUE_TABLE 取代了,但確實改善了 “索引” 和 “值” 之間比對的問題,在 VALUE_TABLE 中可以很明確地看出每一個 enum 列舉值所對應的 string。
ENUM_WITH_STRING(Animal, dog, cat, monkey = 50, fish, human = 100, duck) int main() { std::cout << to_string(Animal::dog) << std::endl; std::cout << to_string(Animal::cat) << std::endl; std::cout << to_string(Animal::monkey) << std::endl; std::cout << to_string...
enumColor{ RED, GREEN, BLUE }; 我们可以创建一个函数,该函数接受一个字符串参数,并返回对应的枚举值: c复制代码 enumColorstring_to_color(const char* color_str){ if(strcmp(color_str,"RED") ==0) { returnRED; }elseif(strcmp(color_str,"GREEN") ==0) { returnGREEN; }elseif(strcmp(color...
public class EnumChineseAttribute : Attribute { private string m_strDescription; public EnumChineseAttribute(string chineseName) { m_strDescription = chineseName; } public string Description { get { return m_strDescription; } } } enum Country { [EnumChinese("中国")...
enum MyEnum { FOO, BAR = 0x50}; 我在google中搜索的是一个脚本(任何语言),它扫描项目中的所有标头,并生成一个每个枚举都有一个函数的标头。 char* enum_to_string(MyEnum t); 一个类似这样的实现: char* enum_to_string(MyEnum t){ switch(t){ case FOO: return "FOO"; case BAR: return "BA...
char* enumerate_to_string(Enumerate* enumerate, uint8_t total, int32_t val); #define ENUMERATE_DEF(object) static Enumerate _ENUM_##object[] #define ENUMERATE_ITEM(val) {val, #val} #define ENUM_TO_STRING(object, val) enumerate_to_string(_ENUM_##object, ARRAY_LENGTH(_ENUM_##object)...
prog.c:12:15: error: assignment to expression with array type 但是,有一个解决办法!您可以使用 strcpy() 函数并将值分配给 s1.myString,如下所示: 代码语言:c 代码运行次数:0 运行 AI代码解释 structMyStructure{intmyNum;charmyLetter;charmyString[30];// 字符串};intmain(){structMyStructures1;//...
#define ENUM_MAP(type, strings) char * getStringValue(const type &T) \ { \ return MyGetValue((int)T, strings); \ } ; enum eee {AA,BB,CC}; - exists in library header file ; enum fff {DD,GG,HH}; ENUM_MAP(eee,"AA|BB|CC") ENUM_MAP(fff,"DD|GG|HH") // To use......
@"URL", nil] : ___DPodRecordType) // 枚举 to 字串 #define cDPodRecordTypeString(type) ([cDPodRecordTypeGet objectAtIndex:type]) // 字串 to 枚举 #define cDPodRecordTypeEnum(string) ([cDPodRecordTypeGet indexOfObject:string])