- 1
#define arrVec[2].realVectorInfo.Count 5
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+173
#define arrVec[2].realVectorInfo.Count 5
Мало того, что встретил это в проекте, доставшемся от "предков", так ведь и MSVS 6.0 проглатывает.
Выражение arrVec[2].realVectorInfo.Count успешно заменялось на 5.
Заметил подставу после появления строки arrVec[i].realVectorInfo.Count в проекте, в результате рефакторинга.
inkanus-gray 21.12.2010 00:18 # +3
Вот только C++ не смог найти. В Си это не скомпилируется?
Говногость 21.12.2010 00:25 # 0
absolut 21.12.2010 00:57 # 0
guest 21.12.2010 00:58 # 0
eth0 21.12.2010 19:56 # +1
Мистер Хэнки 21.12.2010 20:28 # +1
guest 21.12.2010 22:33 # +2
Только ламеры делают проверки:
if(expression==TRUE)
inkanus-gray 21.12.2010 22:35 # 0
guest 21.12.2010 23:00 # +1
ctm 23.12.2010 21:23 # 0
guest 21.12.2010 00:43 # 0
inkanus-gray 21.12.2010 01:52 # +7
Препроцессор, увидев где-нибудь заклинание arrVec[2].realVectorInfo.Count, тут же поторопится его заменить на 5, даже если оно встретится в левой части оператора присвоения (о, ужас!). Самое коварное, что в правой части нет скобок, поэтому последствия непредсказуемы.
Если же в программе будет arrVec[i].realVectorInfo.Count, то даже в случае i равного 2 подстановка не выполнится. Отладчика ждёт палата №6.
telnet 21.12.2010 09:15 # +1
> Отладчика ждёт палата №6.
Кэп должен был без метафор описать, что произойдёт.
FadedInto 21.12.2010 01:04 # +3
А власти скрывают!.. Не засну теперь.
guest 21.12.2010 01:08 # +3
guest 21.12.2010 23:08 # +2
Злободневность говнокода всем затманила глаза...
С++ то нет! ^_^
inkanus-gray 23.12.2010 21:51 # +2
guest 02.01.2011 01:43 # 0