MiK13 писал: ↑21.01.2020 16:11
Но это, скорее всего приведёт к дублированию вызовов.
Не обязательно.
MiK13 писал: ↑21.01.2020 16:11
У меня при обработке запроса надо добавить в некоторый массив группу данных. Или просто занести.
Второе действие представляет собой первое, только с предварительной очисткой массива.
Ну что ж, позвольте изложить чуть подробнее.
Книг по языку Си я видел не очень много, но штук пять-шесть навскидку могу припомнить.
И практически везде наблюдалась одна и та же картина: оператор switch вводится после if...else
примерно в таком контексте: вот у нас есть несколько условий (штук десять), if...else (который мы уже знаем) использовать неудобно, слишком громоздкая конструкция получается, поэтому вот вам switch.
То есть switch и if...else делают примерно одно и то же.
И если это так, то отсюда следуют две вещи:
1. Условия в switch взаимоисключающие.
2. В случае небольшого количества условий можно обойтись if...else.
В Вашем случае условия в switch взаимоисключающими не являются, насколько я понял.
Это уже повод пересмотреть код. Ну и по количеству условий - оно мне неизвестно, но может оказаться, что switсh вообще не нужен.
Можно либо иначе сформулировать условия, сделав их взаимоисключающими,
либо вообще не использовать switch.
Если Clear() вызывается только как предварительное действие к Store(),
но никогда не вызывается сама по себе, то отдельная ветка в switch ей нафиг не нужна - много чести.
В этом случае я бы её вызывал где-нибудь внутри Store() в нужный момент (при нужных условиях).
MiK13 писал: ↑21.01.2020 16:11
Войны с компилятором нет.
Ну, хорошо, не война. Возня.
Сборка прошла с предупреждением, что-то подшаманили, предупреждение исчезло,
пришли на другую машину/другой дистр/другую разрядность/другую версию - предупреждение опять появилось,
опять нужно шаманить, только уже иначе ну и т.д.
А всего-то и надо было, что отрефакторить несколько строк кода с учётом особенностей языка.
Я сам люблю, когда сборка происходит "чисто" - без предупреждений. И стараюсь этого добиться.
А в некоторых проектах, которые я видел, вообще всё сурово: предупреждения приравнены к ошибкам.
Были такие давние времена, когда в случае ошибок сборки исправляли компилятор, а не программу.
И эти интересные люди вроде бы даже ещё живы.
А мы с Вами сегодня можем позволить себе роскошь доверять компилятору.
И если уж мы обращаем внимание на его сообщения, то не зря же мы это делаем.
Мы же хотим наш код улучшить, а не просто "подавляющих атрибутов" напихать.
Таково моё ИМХО.