Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ну нах. Я уже и так затр@хался разбираться с этой прогой, которая автором как "модульная" была названа.

Отправлено rezident 15 августа 2007 г. 09:27
В ответ на: Дык, переименуй эти счетчики, всего и делов то... отправлено =L.A.= 15 августа 2007 г. 09:06

В реальности чушь собачья, а не модульная программа. Все глобальные переменные объявлены как volatile. На вопрос: почему так и зачем это нужно? Автор уклончиво ответил: "чтобы компилятор не заоптимизировал". Когда я стал разбираться, то до меня дошел смысл опасений автора. Место объявления глобальных переменных выбрано "от балды". Допустим, переменная объявлена в одном модуле, где ее значение не инициализируется и не модифицируется, а только идет сравнение с ее значением. Инициализируется она совершенно в другом модуле, где объявлена как внешняя (extern). Упомянутая глобальная переменная, которая имеет одноименную локальную переменную в майне, используется в двух других функциях как локальная. Ладно еще хоть автор код из хидеров перенес в модули. По-началу у него был один main.c и туева хуча хидеров с функциями в них. Я конечно не крупный специалист по программированию на Си, но мне такой стиль написания и в голову не приходил.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 234:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru