структур Есть ли способ реализации «LookupFunc» в этом коде:Простой поиск по ключу для
enum FoodType { FRUIT, VEGGIE, DESSERT };
struct Food {
char name[20];
int index;
FoodType type;
};
struct Food APPLE = {"apple", 0, FRUIT};
struct Food CARROT = {"carrot", 1, VEGGIE};
struct Food CANDY = {"candy", 2, DESSERT};
struct Food f = LookupFunc("apple");
printf("indexof apple: %d\n", f.index);
printf("type of apple: %d\n", f.type);
у меня будет только 8 типов объектов Food/структур, но неограниченные возможности для поиска. В идеале, имя char [20] не понадобилось бы в моей структуре, и это могло бы идти по имени переменной, но я не думаю, что C может это сделать. У меня такое чувство, что это может быть проще, используя многомерные массивы и поиск с использованием цикла for.
Не должно быть 'struct Food APPLE ...' вместо 'struct Opcode APPLE ...'? –
Да, жаль, что я исправил его сейчас – ParoX
Ваша интуиция в порядке - C не сохраняет имена переменных или полей во время выполнения, поэтому вам нужно будет позаботиться о сохранении ваших значений в структурах данных, которые позволят вам искать впоследствии. Единственное, что я хотел бы добавить, это то, что вы можете захотеть использовать перечисление для имен/категорий переменных вместо строк. – hugomg