gboolean gconf_string_to_enum(GConfEnumStringPair查找表[], 常量gchar*str, gint*枚举值_retloc);
{ 枚举{A,B}test_enum; gconf枚举字符串(枚举字符串,字符串,(int*)&测试字符串); }
{ 枚举{A,B}test_enum; int测试int; if(gconf_enum_toString(enum_tostr_table,str,&testint)) { test_enum=测试int; } }
{ 枚举{A,B}test_enum; int测试int;
test_enum=-1; gconf_num_to_string(枚举表、字符串和测试输入); test_enum=测试int;
如果(test_enum 这里的问题是,您假设枚举具有签名 表示,而实际上编译器可以选择无符号 代表。 如果转换失败, if(测试编号 将 不 检测它。
Alex还指出,在API中向枚举添加值时 您需要小心,不要无意中更改 因为编译器选择使用大整数表示 用于之前使用的枚举。