- 1
- 2
- 3
- 4
int str_length(const char *str)
{
return (int)strlen(str);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+66.4
int str_length(const char *str)
{
return (int)strlen(str);
}
Опенсорс, если чо.
guest 03.01.2010 03:36 # −2
guest 03.01.2010 13:25 # −2
guest 03.01.2010 16:51 # +1
guest 03.01.2010 17:34 # +1
xaionaro 11.01.2010 06:01 # 0
?
Хотя тоже смех..
Altravert 03.01.2010 23:02 # 0
guest 03.01.2010 23:45 # +3.2
guest 12.01.2010 22:07 # +1
guest 03.01.2010 23:46 # −2
Altravert 04.01.2010 00:00 # +2
В конце концов, может возврат нужно было часто равнять к инту? Ну тогда говнистость максимум в отсутствии кастов, и то я не помню, что стрлен возвращает.
Верите или нет, но если в этот метод добавить одну строку, то получится в любом случае легче, выгоднее и проще, чем впихивать эту строку во весь код.
guest 04.01.2010 02:14 # −2
Altravert 04.01.2010 07:30 # +2
Altravert 04.01.2010 07:31 # +1
generalgda 04.01.2010 14:15 # 0
guest 09.01.2010 01:21 # +1
xaionaro 11.01.2010 06:16 # −1
echo 'mv "$1" "${1}~"; cat "${1}~" | sed -e "s#str_length[ ]*(#strlen(#g" > $1; rm -f "${1}~"' > sed.sh
find ./ -name "*.cpp" -exec ./sed.sh {} \;
rm -f sed.sh
Если на ккой-то хрен понадобился именно int, то вполне можно использовать "#define" или вообще без него обойтись. А делать функцию для преобразования типов (size_t -> int) - это как-то немного неприемлемо.
А по поводу "если добавить строчку", то а если убрать три строчки (всю эту функцию), тогда вообще говнокода не будет; но написанно именно так, поэтому обсуждаем именно это. Да, понятно, что возможно это пережитки ранних версий кода, или наоборот сделанно с расчётом на будущее, поэтому вполне может быть, что в данных строках есть смысл, однако, нам об этом неизвестно и конкретно данный вариант кода выглядит странновато.
Altravert 11.01.2010 14:17 # 0
guest 05.01.2010 09:25 # −1
Так, что жуткий говнокод.
Altravert 06.01.2010 20:22 # 0
guest 06.01.2010 23:22 # 0
Altravert 07.01.2010 06:52 # +1
pushkoff 08.01.2010 20:47 # 0
guest 08.01.2010 22:00 # 0
pushkoff 08.01.2010 22:05 # 0
если че, я gamedeveloper...
guest 09.01.2010 01:22 # 0
int str_length(const char *str)
?
pushkoff 09.01.2010 14:53 # 0
guest 09.01.2010 17:49 # 0
Зачем он тебе нужен? O_o
Просто strlen пользуйся. Зачем конструкции городить?
pushkoff 10.01.2010 19:18 # 0
xaionaro 11.01.2010 06:19 # 0
Altravert 09.01.2010 15:26 # 0
guest 09.01.2010 17:50 # 0
Altravert 11.01.2010 14:20 # 0
У меня может возникнуть ситуация, когда строка оканчивается не нулем, или когда мне нужно принудительно ограничивать возвращаемое значение, или когда строка может содержать стопицот нулей.
guest 05.01.2010 18:16 # 0
guest 05.01.2010 22:38 # 0
guest 05.01.2010 22:39 # 0
Altravert 06.01.2010 20:23 # 0
guest 06.01.2010 23:27 # 0
guest 06.01.2010 23:28 # 0
Altravert 07.01.2010 06:56 # +1
Представь ситуацию: мне от строки нужно умет знать её длину, брать произвольный символ или подстроку. Ну, для примера. Ты довольный берешь какой-нибудь std::wstring и начинаешь потихоньку охуевать от этого вектора на темплэйтах. Так не легче ли эти три метода самому написать?
pushkoff 08.01.2010 20:51 # 0
guest 08.01.2010 22:01 # 0
Говногость 12.01.2010 14:21 # 0
Altravert 13.01.2010 04:57 # +1
Кстати, есть вариант, что корпоративная политика запрещает пользоваться stl'ем.
guest 06.01.2010 01:26 # +1
Во-вторых, это кусок из кода замечательной гамалки teeworlds.
— Ambilight-кун.
guest 06.01.2010 01:28 # −7.2
guest 06.01.2010 08:11 # +6
guest 12.01.2010 00:06 # −5.2
guest 06.01.2010 23:34 # +2
guest 14.01.2010 11:36 # +1
nil 16.01.2010 14:56 # 0
guest 06.01.2010 14:19 # 0
{
return (long double)strlen(str);
}
Altravert 06.01.2010 20:24 # 0
guest 06.01.2010 23:28 # 0
guest 06.01.2010 23:30 # 0
Altravert 07.01.2010 06:58 # 0
guest 06.01.2010 23:32 # 0
Зачем такая большая точность long double для длины строки? На сколько я помню, в char последний раз было 8 бит. А точность 1/8 вместит даже float.
guest 06.01.2010 23:33 # 0
guest 09.01.2010 01:23 # 0
Altravert 07.01.2010 07:00 # 0
guest 10.01.2010 00:07 # −3
guest 12.01.2010 00:07 # +3
Говногость 12.01.2010 14:24 # −1
"Здесь" пишеться!!! Говнокодят не только на языке С++, но и на Русском... :)
Хотя я и сам часто тороплюсь... :)
Ambilight 13.01.2010 10:11 # 0
guest 13.01.2010 11:20 # 0
guest 13.01.2010 11:27 # 0
guest 14.01.2010 11:39 # 0
Для русского человек более естественно писать программы на родном языке.
Вот например язык программирования, где можно это сделать на русском:
http://ru.wikipedia.org/wiki/Оберон_(язык_программирования)#.D0.93.D0 .BB.D0.B0.D0.B3.D0.BE.D0.BB
guest 14.01.2010 11:40 # 0
Ambilight 16.01.2010 11:35 # 0
guest 13.01.2010 11:21 # 0