Скажем, у меня есть ряд строк, которые я часто использую в своей программе (для хранения состояния и т.д.). Операции с строками могут быть дорогими, поэтому при обращении к ним я хотел бы использовать перечисление. До сих пор я видел пару решений:
typedef enum {
STRING_HELLO = 0,
STRING_WORLD
} string_enum_type;
// Must be in sync with string_enum_type
const char *string_enumerations[] = {
"Hello",
"World"
}
Другой, с которым я встречаюсь довольно часто:
typedef enum {
STRING_HELLO,
STRING_WORLD
} string_enum_type;
const char *string_enumerations[] = {
[STRING_HELLO] = "Hello",
[STRING_WORLD] = "World"
}
Каковы минусы/плюсы этих двух методов? Есть ли лучший?