У меня есть несколько структур данных , каждый из которых имеет поле размером 4 байта.
Поскольку 4 байта равны 1 int
на моей платформе, я хочу использовать их в case
метках:
switch (* ((int*) &structure->id)) {
case (* ((int*) "sqrt")): printf("its a sqrt!"); break;
case (* ((int*) "log2")): printf("its a log2!"); break;
case (((int) 'A')<<8 + (int) 'B'): printf("works somehow, but unreadable"); break;
default: printf("unknown id");
}
Это приводит к ошибка компиляции, сообщая мне, что выражение case не сводится к int
.
Как я могу использовать массивы char ограниченного размера и преобразовать их в числовые типы для использования в переключателе
/ case
?