Ну, просто все эти венгерские нотации, идентификаторы, составленные из первых символов слов и сокращенные до <= 8 символов и т.п. - все то тянется из времен доса, когда все писалось в текстовом редакторе 80x25, который подсказывал только номер текущей строки/столбца и имя редактируемого файла.
Это всё для удобства и код должен быть дисциплинирован. Не согласен, все же хороший код должен быть прокомментирован в специфических случаях. Код (C++): // Диапазон исключая символы(не буквы) и цифры bool checkrange(const char ch) { if(ch < 0 || ((ch > 64 && ch < 91) || (ch > 96 && ch < 123))) return true; else return false; } Согласитесь комментарий вносит ясность?
... таких, как пояснение сложного алгоритма. Но комментарии, рассказывающие о том, как надо читать имена переменных - это уже говнокод. В этом говнокоде все стало бы яснее, если бы коды символов были заменены на литералы. Без комментариев
И вообще: 1. Для аргументов, передаваемых по значению, const не нужон. 2. Полагаться на то, что char это знаковый тип нельзя. 3. Без "else" код, как ни странно, будет работать точно так же, стало быть он там не нужон.
Вы сами себе уже противоречите. Литералами тут не обойдешься, там чтобы выйти за 0, нужно целую портянку писать, что есть не комильфо. Вот давайте только без переходов на личности и вбросов без подкрепления кодами.
1) Этот символ используется другой функцией и const там "нужон", хороший тон использовать как можно чаще const. 2) Можно, так как signed модификатор юзается неявно. 3) else не упущение.
1. Если туда он передается по ссылке, то там const и указываем. А иначе он и там не нужон. Хороший тон - использовать const там, где это имеет хоть какой-то смысл (например, сообщить компилятору, что внутри функции аргумент, передаваемый по ссылке изменяться не будет, что может поспособствовать построению более оптимального кода). 2. Если иного не указано в командной строке.
Я пишу сразу по принципу, принимаемые аргументы как const(кроме аргументов как те что mutable), if с else, etc, как черновую, потом уже когда все написано и работает начинается улучшение, то что лишнее убирается. Вы же тело if, for, while начинаете с фигурных скобок?
Я заметил, потому и говорю, что так неправильно. Если аргумент передается по значению, то функция его и так изменить не может, т.к. работает со стековой копией; const здесь избыточен. Если в теле больше одного выражения. Или если это условный блок с множеством else, хотя бы в одной из которых больше одного выражения.
Шо, опять? Будет char знаковым или беззнаковым определяется ключами компилятора. Ключами, которые возможно компилятору будешь прописывать не ты, а человек, использующий твой код.
Один известный в своих кругах человек поставил все точки над i этим постом: http://cellperformance.beyond3d.com/articles/2008/03/three-big-lies.html
Нет. А почему вы спрашиваете? [added] Обидели прям ( Я старый нервный ассемблерщик, я еще для Z80 на бумажке кодил)
Но ведь реально говнокод )) Мой вариант (тоже не идеальный, конечно, можно еще вылизывать - но очень читабельный): Код (Text): bool non_character(char ch) { return ch < 0; } bool uppercase(char ch) { return ch >= 'a' && ch <= 'z'; } bool lowercase(char ch) { return ch >= 'A' && ch <= 'Z'; } // бывший checkrange() bool is_valid_character(char ch) { return non_character(ch) || lowercase(ch) || uppercase(ch); }
ol., Код (C++): bool non_character(char ch) { return ch < 0; } bool uppercase(char ch) { return ch >= 'a' && ch <= 'z'; } bool lowercase(char ch) { return ch >= 'A' && ch <= 'Z'; } // бывший checkrange() bool is_valid_character(char ch) { return non_character(ch) || lowercase(ch) || uppercase(ch); } Зачем здесь 3 версии функции? Ещё разнесите символьные константы для полноты в разные функции, совсем наглядно будет. Так пишут новички. Есть такое правило золотое - не твори сущностей без нужды и я его придерживаюсь. non_character что у вас делает? У меня она для проверки и кириллицы, не только латиницы. Если продолжите в таком стиле писать, то больше не посчитаю нужным вам отвечать. Потому что кто пишет на пайтоне они в основном змеиной нотации придерживаются, а вот из мира джава, джаваскрипт любители как раз таки верблюжей нотации. Плюсовики пишут по разному, но больше встречаю что на гитхаб, что в книгах, на форумах, либо сокращения, либо конкат, либо змеиную нотацию.