|
возможности switch()
|
|||
---|---|---|---|
#18+
Siemargl, Пропустишь такое через review? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2019, 00:09 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
maytonSiemargl, Пропустишь такое через review?Чтобы не выглядеть умным, я лучше на днях посмотрю, что пишут профи в МИСРА С++ итп =) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2019, 00:35 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
Я вот взял какой-то свой старый кусок кода. И сделал несколько нейтральных преобразований. Скобки там... namespaces. Логика сохранена но какие-то элементы читаемости утеряны. Попробуйте не компилируя и не запуская прокомментировать что здесь и как происходит. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2019, 02:12 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
mayton, ты полагаешь, восьмеричная система счисления кого-то сильно смутит? :) Предлагаю расставить все точки над "i" :\ Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2019, 02:45 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
Кого-то switch смущал. Но синтаксические конфеты switch легко проверяются. В 1 запуск с отладкой. Циклы поверить сложнее. Больше условий надо учесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2019, 02:55 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
SiemarglmaytonSiemargl, Пропустишь такое через review?Чтобы не выглядеть умным, я лучше на днях посмотрю, что пишут профи в МИСРА С++ итп =) Запрещено в MISRA C - недостижимый код до 1й метки ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2019, 15:14 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
SiemarglSiemarglпропущено... Чтобы не выглядеть умным, я лучше на днях посмотрю, что пишут профи в МИСРА С++ итп =) Запрещено в MISRA C - недостижимый код до 1й метки Слава богу. Я уж думал там совсем языковая анархия. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2019, 15:17 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
maytonСлава богу. Я уж думал там совсем языковая анархия.Отсутствие языковой анархии проблем в коде не решает. Моё личное мнение: оно (отсутствие) их добавляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 05:37 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
А кто нить попробуйте аналогичную штуку в шарпах. Мне кажется мы должны получить ошибку компилляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 10:55 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
maytonА кто нить попробуйте аналогичную штуку в шарпах. Мне кажется мы должны получить ошибку компилляции. Так и есть. Нельзя там код вставлять между switch() и case. C# switch() ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 15:00 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
В Java тоже нельзя. Нарушение синтаксиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 16:22 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
kolobok0, А код, очень понятен! Прозрачен, как твои пластиковые окна (А грязь на них - глупый коллектив. Который нужно постоянно в саки макать из за некомпетентности) Давай разберём, почему это фича, а не говно - код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
А теперь представь, что без данной фичи, нам надо развернуть цикличный цикл Код: plaintext 1. 2.
Что значит, при каждом проходе, у нас есть проверка X >= 0 когда она существует в том коде раз в 8 тактов Конечно же, умные компиляторы которые сейчас есть, поймут что пользователь делает данный код, и вставит свою реализацию move А вот древние компиляторы такого не умели. И процессоры были другие, и на то время код с фичей такой считался очень быстрым .. А сейчас же, во всех процессорах по стандарту идёт SSE и он вставит скорее её. И прирост будет огромный как хер подзаборный ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 23:27 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
В общем, данную фичу можно применять, но не в переносе строк в другую. А для чего нибудь другого, что требует такую же логику обработки. Но не может за раз перенести не 8 не 4 не 2 байта )))) xD ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 23:32 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
Если речь идет о копировании строк то данный шаблон скорее не применяется. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 11:25 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
Гирлионайльдо..коллектив. ..из за некомпетентности.. ну, судя по коду - писал его лох от сей. 1) использование констант в коде +1 шаг к увольнению. 2) если надо использовать скорость копирования, то откройте для себя стандартные функции библиотек (и как они решают эти дела. тут надо бы сказать про ту обезьяну которая не использует опыт человечества ранее накопленный) +10 шагов к увольнению, с записью в трудовую о не компетентности в данной области 3) время сколько затратит другой разработчик который заглянет в этот код? 5 секунд? 5 минут? Или 30 минут лазанья по компиляторам, с проверкой - а что хотел автор, правильно ли они превращают идею автора в результат, как это адаптировать к другим условиям которые пришли с выше... +5 шагов к увольнению организатора работ к допуску этого горе программиста к коду. 4) ... там ышо можно наковырять существенные минусы этого говнокода... удачи вам, она вам потребуется (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 11:47 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
Метрика Холстеда покажет небольшое число. Но сложность этого кода - в нестандартом оформлении. Это такой себе brain-fuck для собеседований. Не для production кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 11:52 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
kolobok01) использование констант в коде +1 шаг к увольнению. Это очень смешное замечание в применении к данному примеру кода. Пример того как не вдумываясь буквально применяют правила )) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 12:11 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
[quote Anatoly Moskovsky]kolobok0...не вдумываясь буквально применяют правила )) Вы правы и не правы одновременно. В плане форума - да, важнее не это. В плане кода - тот кто писал, не открывал альма-матер C&R для хэллоу ворда - это не заметно. на больших проектах это задница. (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 12:16 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
kolobok0, Ну перепишите без констант - посмотрим на читаемость )) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 12:21 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
Да разве в константах дело. Скажите по честному кто помнит порядок срабатывания метки case 0: и начала цикла с постусловием do? Я без проверки на 2-3 компилляторах не скажу что и как. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 12:37 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
maytonДа разве в константах дело. Скажите по честному кто помнит порядок срабатывания метки case 0: и начала цикла с постусловием do? Метка это адрес кода, который идет после нее. Т.е. case 0 это адрес начала цикла do. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 12:55 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
То же самое по скорости (в оригинале упор на скорость), проигрыш в размере. читаемость 100% Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 13:06 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
Гирлионайльдо... ...надо развернуть цикличный цикл Код: plaintext 1. 2.
... Вы даже не в ту степь пример привели. Изначально сбив меня с панталыку. Обратите внимание, что в оригинальной статье нет приращение указателя приёмника. И дано объяснение, что это указатель на ячейку вывода в адресном пространстве. И этот нюанс накладывает ограничения к применению станадартных либ по копированию. Ваш же пример - решает стандартная библиотека копирования. Общий схематоз - узнаём сколько больших блоков можем за "один шаг" копирнуть, копируем большие блоки. Далее добиваем мелочёвкой. (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 13:19 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
kolobok0То же самое по скорости (в оригинале упор на скорость), проигрыш в размере. читаемость 100% Насчитал столько же констант )) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 13:29 |
|
возможности switch()
|
|||
---|---|---|---|
#18+
maytonДа разве в константах дело. Скажите по честному кто помнит порядок срабатывания метки case 0: и начала цикла с постусловием do? Так понятнее? )) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2019, 13:36 |
|
|
start [/forum/topic.php?fid=57&msg=39762562&tid=2017678]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 411ms |
0 / 0 |