-
- Ага. Пример: есть у нас состояния 0..10. Мы их в свиче перечислили.
Далее gcc видит это, и делает нечто вроде массива адресов перехода
(goto label, как говорится). По номеру состояния берет адрес и туда
"прыгает", выполняя дальнейший код (а там уже если есть break,
будет еще одно goto - в хвост, если же нужен fallthru, пойдет в
следующий кейс). - Eddy_Em(23.11.2023 22:19)
- Как свитч работает я прекрасно понимаю. Я одно не понимаю хватит ли
ума у компилятора, цепочку ифов заменить свитчем? - IBAH(23.11.2023 22:36)
- Ну, а почему бы не проверить? Берем простейший код Eddy_Em(1340 знак., 23.11.2023 23:19)
- НЕТ! Сам свитч может быть реализован для разных кейсов по-разному.
Скорее кейм может перевратиться в набор проверок (if'ов) - POV(23.11.2023 22:45)
- Кстати, показательный пример - ПЛИС... POV(303 знак., 23.11.2023 22:48, ссылка)
- Как свитч работает я прекрасно понимаю. Я одно не понимаю хватит ли
ума у компилятора, цепочку ифов заменить свитчем? - IBAH(23.11.2023 22:36)
- Ага. Пример: есть у нас состояния 0..10. Мы их в свиче перечислили.
Далее gcc видит это, и делает нечто вроде массива адресов перехода
(goto label, как говорится). По номеру состояния берет адрес и туда
"прыгает", выполняя дальнейший код (а там уже если есть break,
будет еще одно goto - в хвост, если же нужен fallthru, пойдет в
следующий кейс). - Eddy_Em(23.11.2023 22:19)