Показать сообщение отдельно

  #3  
Старый 25.04.2009, 23:18
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

Цитата:
Сообщение от Kaimi  
Я как бэ не программист по образованию и даже не интересующийся (особенно с++), ну да ладно...


Приведи практический пример, когда мой вариант повлечет за собой ошибку


ascii коды сподвигли
Неинициализированная перменная в языкам типа с++ есть очень опасное зло. Значение будет ровно таким, какое значение имела ячейка памяти. Так как переменная локальная - то лежит в стеке. Сталобыть значение может быть любым. Таким образом ты получишь магическую ошибку, которая трудновоспроизводима, ибо зависит от состояния памяти процесса(а суть в том, что EOF это просто символьное описание числа 0xFF, которое встречается в памяти довольно часто, и вполне вероятно его получить в неочищенном блоке памяти). И если бы такое приложение было комерческим, то чудесные часы дебагинга и анализа кода были бы обеспечены. Ну а потом промывка мозга на тему "почему не учтен warning C4700, который дал компилятор"

По поводу кодов - так и пиши символы, зачем ты переводишь их в коды? Чтобы сложнее было понять суть проверки? if (ch >= '0' && ch <= '9') гораздо нагляднее. Опять же использование числовых констант ацки нерекомендуется нигде и никогда. Все константы должны иметь символические имена. #define WEEK_LENGTH 7 итп. Это помогает понять контекст кода просто глянув на него, без комментариев.

ЗЫ: не учите плохому плз. ибо потом такие кодесы городят, что страшно смотреть.

Последний раз редактировалось Ra$cal; 26.04.2009 в 01:29..
 
Ответить с цитированием