Comments 15
Оказывается, из ничего тоже можно сделать статью на Хабр!
Подскажите, вы планируете сделать плагин для JetBrains Rider?
if (strlen(*key) > 0)
Такую проверку можно произвести гораздо проще: if (*key[0] != '\0')Это конечно так, но не надо забывать, что приоритет операторов другой — *(key[0]) вместо более близкого по смыслу (*key)[0]
Интересно, разве компилятор не делает эту оптимизацию для strlen(*key) > 0 самостоятельно? Вроде не бы не рокет сайнс.
Делает. И clang и gcc и msvc делают.
Выходит, что предлагаемая замена не даёт обещанного прироста в перфомансе, зато читается хуже и вызывает больше вопросов. Такая подсказка анализатора скорее вредна, чем безобидна?
Сложный вопрос. А вдруг вы этот код будете славным Borland C++ 3.1 компилировать?
Но так-то да, я бы, скорее, это оставил компилятору…
Но так-то да, я бы, скорее, это оставил компилятору…
А тут это ничего не изменит т.к. [0] справа и звёздочка слева это одно и то же.
Можно было ещё написать **key или key[0][0].
Но это тут, где индекс нулевой, а вообще да, я в таких конструкциях (когда одновременно и префиксный и постфиксный операторы есть) всегда скобки ставлю чтобы сразу видеть желаемый и фактический порядок действий.
А может гугл уже проверил через PVS-Studio и исправил важные ошибки?)
Sign up to leave a comment.
PVS-Studio хотел, но не смог найти баги в robots.txt