189 похожих чатов

Взываю к "сишникам" 99 уровня: скажите, есть ли какие-то требования

к порядку следования операндов Case ??

28 ответов

26 просмотров

Я бы сделал первыми(если такое возможно) в лесенке: switch (){ case } наиболее вероятные варианты, которые предположительно поступят первыми:))

Andrey-Khristov Автор вопроса
Sergey
Я бы сделал первыми(если такое возможно) в лесенке...

я пока понимаю, что надо бы первыми сделать элементы, реакция на которые нужна более быстрая.

Andrey Khristov
я пока понимаю, что надо бы первыми сделать элемен...

Ну да, например в части игры где юзер будет сражаться с чудовищем и у него только нож и базука, вероятнее всего юзер выберет первым оружием базуку))

Andrey-Khristov Автор вопроса
Sergey
Ну да, например в части игры где юзер будет сражат...

тут происходит аналого-позиционное преобразование, и gcc меня спас тем, что ему в case можно диапазоны подсовывать.

Х
Нужен атрибут "likely"?

Эт из C++20 что-ли?))

Sergey
Эт из C++20 что-ли?))

Вы так говорите, как будто это что-то плохое.

Х
Вы так говорите, как будто это что-то плохое.

Нет, нет, я просто ещё с этим не сталкивался. Спасибо что дали наводку, поизучаю👍

Griffin d
c.

Не .сpp:)) https://en.cppreference.com/w/cpp/language/attributes/likely

Griffin d
да. тоже.

Ааааа, понял))

Sergey
Ааааа, понял))

в драйверах линуха наблюдаю.

Andrey-Khristov Автор вопроса
Pasha
а насколько быстрая реакция вам нужна?

хороший вопрос... возможно я получу нужное мне быстродействие, просто прибавив тактовой частоты МК. Изначально там код написан весьма грубо, например то же самое преобразование было написано циклом, где перебирались элементы массива и сравнивались с входящим значением, а при "попадании" цикл завершался и на выходе был его текущий счетик...

Griffin d
в драйверах линуха наблюдаю.

Ага, там под макросом интрисик компилятора дергается.

Case просто выстраивает относительные джампы же в простейшем случае. Подробностей не знаю, но легче тут посмотреть дизассемблированный код. Чтоб посмотреть, сортирует ли компилятор «кейсы» перед вычислением смещений адреса

Andrey Khristov
хороший вопрос... возможно я получу нужное мне быс...

прост мне кажется размышлять над быстродействием свич кейс, такое себе занятие) последнее чем стоило бы заняться

Andrey-Khristov Автор вопроса
Pasha
прост мне кажется размышлять над быстродействием с...

наверное да. проще сразу разогнаться, и подправить там ряд констант, чтобы не все разогналось

Andrey Khristov
хороший вопрос... возможно я получу нужное мне быс...

вообще-то ответ тут подразумевается во временных единицах. ну не знаю, 1нс, 1мкс, 1мс, 1год

Andrey Khristov
хороший вопрос... возможно я получу нужное мне быс...

сделайте бинарный поиск в отсортированном массиве

Andrey Khristov
хороший вопрос... возможно я получу нужное мне быс...

Я тут 2 синуса посчитать не могу)) пришлось 1м пользоваться по всей программе

Pasha
прост мне кажется размышлять над быстродействием с...

Кстати, выглядит бредом, но иногда можно и поменять на цепочку if-else. По скорости не интересовался, но несколько байтов сэкономить можно.

Алексей Кузнецов 🦔
Кстати, выглядит бредом, но иногда можно и поменят...

не выглядит бредом. но профит зависит от распределения вероятностей перехода по прямой ветке (if ) и альтернативной (else) . если 50/50 , то профита не будет

Peter Moroz
не выглядит бредом. но профит зависит от распредел...

Сча глянул у меня в прошивке при кейсе большом появляется табличка переходов в секции свич, правда ещё не глядел че там в асме и как переходы выбираются, эт я про кейсы. Кейсы сами энум от балды

Andrey Ermakov
Сча глянул у меня в прошивке при кейсе большом поя...

да, я читал, что одна из возможных реализаций - это lookup table

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта