Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
В реальности чушь собачья, а не модульная программа. Все глобальные переменные объявлены как volatile. На вопрос: почему так и зачем это нужно? Автор уклончиво ответил: "чтобы компилятор не заоптимизировал". Когда я стал разбираться, то до меня дошел смысл опасений автора. Место объявления глобальных переменных выбрано "от балды". Допустим, переменная объявлена в одном модуле, где ее значение не инициализируется и не модифицируется, а только идет сравнение с ее значением. Инициализируется она совершенно в другом модуле, где объявлена как внешняя (extern). Упомянутая глобальная переменная, которая имеет одноименную локальную переменную в майне, используется в двух других функциях как локальная. Ладно еще хоть автор код из хидеров перенес в модули. По-началу у него был один main.c и туева хуча хидеров с функциями в них. Я конечно не крупный специалист по программированию на Си, но мне такой стиль написания и в голову не приходил.
Составить ответ | Вернуться на конференцию
Ответы
- Я тоже проходил через этап "запутанности". Когда изучаешь язык вместе с написанием программы, трудно создать грамотную структуру. А если человек опытный программер, а в программе черт ногу сломит - то он просто распиздяй. — K A A (15.08.2007 09:56:52 213.132.80.164, пустое)
- Да вы не стесняйтесь, тут можно без @. Если человек хочет, чтобы был понятен смысл написанного слова, зачем его (слово) искажать? Это как с ханжескими х..., б...ть. Типа с точками культурней. — K A A (15.08.2007 09:51:32 213.132.80.164, пустое)
- Ещё посмотри выход препроцессора, а то с его помощью можно такого наворотить! — vmp (15.08.2007 09:37:44 83.167.112.204, 138 байт)