• Авторизация


Coding Style (или самая священная война) 25-04-2005 03:24 к комментариям - к полной версии - понравилось!


Казалось бы ну какое значение имеет как вы ставите скобки или именуете переменные.
Но существует масс рекомендаций (из самых различных источников) по этому
вопросу и прочти все они друг другу противоположены. (Особенно в вопросах имяобраования.)
Согласия нет нигде. Гектолитры слюну в виде брызг были вылиты на мониторы
из-за того что одни программисты доказывали другим, что их стиль гораздо лучше.

Возьмем C++:
Ну и какой е из способов проверки указателя на 0 является единственно верным?
code:

if (ptr == NULL)
if (ptr == 0)
if (ptr)
if (0 == ptr)
if (NULL == ptr)


И ведь каждый можно обосновать.
if (ptr) - самый короткий, но возникает ошибочное ощущение что ptr - флаг.
if (0 == ptr), if (NULL == ptr) - исключают ошибочное присвоение, но коряво выглядят.
Использование NULL, подчеркивает что ptr указатель который не указывает не на что, но Страуструп рекомендовал использовать 0, к тому же так короче.

И ведь это относительно простой вопрос. А из-за вопросов образования имен классов можно и глаз товарищу выдавить.

Но к согласию приходить надо, ведь вместе работаем, а у команды должен
быть один стиль.
Djuffin
вверх^ к полной версии понравилось! в evernote
Комментарии (4):
По моему - без разницы даже для команды разработчиков :)
Ну и по Occam's Razor - проще наверное юзать короткую запись if (ptr). Аргумент "возникает ошибочное ощущение что ptr - флаг" - это слабенький отмаз :) Если такое ощущение возникает - значит код еще незнаком и непонятен, а какая разница - непонятен смысл ветвелния по флагу или по указателю? :) Опять же флаг или указатель наверное будет видно по именованию?

ЗЫ: но все таки в перечне вариантов надо было if (!ptr) прописать вместо if (ptr) ;) Так сказать для равнозначности условий :)
Wincy 25-04-2005-16:19 удалить
Поэтому я пишу всегда один...
Wolverrum 26-04-2005-22:35 удалить
Так как с точки зрения синтаксиса и if ( !!ptr ) будет верно :)

Самый главный критерий операции имхо читабельность кода (для постороннего). Поэтому всем остальным я предпочту
if ( ptr == NULL ) Возможно я затрачу в реальном машинном коде на два байта больше, но зато другим буде видно, что я хотел (и как)сравнить
Djuffin 28-04-2005-00:27 удалить
Wolverrum, я тоже так делаю. Все для того же.

Возможно я затрачу в реальном машинном коде на два байта больш

Нет, все тот де test eax,eax! Компилятор не дурак.


Комментарии (4): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Coding Style (или самая священная война) | community_coding - Сообщество программистов | Лента друзей community_coding / Полная версия Добавить в друзья Страницы: раньше»