реклама на сайте
подробности

 
 
> CodeVisionAVR V2.04.4a, юзеры CV соединяйтесь
Саша_74
сообщение Nov 5 2009, 10:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 24-04-08
Пользователь №: 37 059



Народ в паутине появился изнасилованный CodeVisionAVR V2.04.4a.
Кто пробовал с ним совокуплятся?
У меня возникли сомнения по его живучести. Вопервых меняется ехе в bin при лечении на гораздо менший по размеру,
вовторых не видит ошибку когда переинная extern char ссылается на int хотя в настройках warning все галлочки стоят.
Может кто укажет дорогу просветления к праелному CV V2.04.?? посетившему доброго доктора Парацелса.
Плз!!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
LVII
сообщение Nov 5 2009, 23:34
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 13-05-08
Пользователь №: 37 469



Приведенный пример применения спецификатора класса памяти extern не является ошибкой.
Дело в том, что в описании языка C, данном его разработчиками, отсутствовала ясная трактовка понятий объявления и определения глобальной переменной. [Керниган Б., Ритчи А., Фьюзер А.: Язык программирования C. Задачи по языку C. Финансы и статистика. 1985]. Поэтому многие компиляторы считают, что глобальная переменная представляет собой единую область памяти, разделяемую несколькими исходными файлами, причем в каждом из них переменная может иметь свой тип. Размер выделяемой памяти будет равен размеру наиболее длинного объявления. Вот почему во многих учебникам по языку C советуют внимательно работать с глобальными переменными.
Для себя давно разработал простой прием. Объявляю все глобальные переменные в одном месте и свожу их в структуру. Типа:
Код
struct GLOBAL {
int v1;
int v2;
char v3;
}VARIABLE;

Начальная инициализация там, где и положено - в функции main().
Тогда объявление глобальных переменных в остальных файлах сводится к одной строчке:
Код
extern struct GLOBAL VARIABLE;
.............
// и работа с переменными.
VARIABLE.v1 = 1;

Программа выглядит более организованно.

Сообщение отредактировал LVII - Nov 5 2009, 23:41
Go to the top of the page
 
+Quote Post



Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 10:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016