- 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 в проекте, в результате рефакторинга.
Вот только C++ не смог найти. В Си это не скомпилируется?
Только ламеры делают проверки:
if(expression==TRUE)
Препроцессор, увидев где-нибудь заклинание arrVec[2].realVectorInfo.Count, тут же поторопится его заменить на 5, даже если оно встретится в левой части оператора присвоения (о, ужас!). Самое коварное, что в правой части нет скобок, поэтому последствия непредсказуемы.
Если же в программе будет arrVec[i].realVectorInfo.Count, то даже в случае i равного 2 подстановка не выполнится. Отладчика ждёт палата №6.
> Отладчика ждёт палата №6.
Кэп должен был без метафор описать, что произойдёт.
А власти скрывают!.. Не засну теперь.
Злободневность говнокода всем затманила глаза...
С++ то нет! ^_^