Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CodeVisionAVR V2.04.4a
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Саша_74
Народ в паутине появился изнасилованный CodeVisionAVR V2.04.4a.
Кто пробовал с ним совокуплятся?
У меня возникли сомнения по его живучести. Вопервых меняется ехе в bin при лечении на гораздо менший по размеру,
вовторых не видит ошибку когда переинная extern char ссылается на int хотя в настройках warning все галлочки стоят.
Может кто укажет дорогу просветления к праелному CV V2.04.?? посетившему доброго доктора Парацелса.
Плз!!!!
defunct
Цитата(Саша_74 @ Nov 5 2009, 12:03) *
вовторых не видит ошибку когда переинная extern char ссылается на int хотя в настройках warning все галлочки стоят.

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

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

Программа выглядит более организованно.
Саша_74
Народ кто знает почему кряка меняет ехе в bin при лечении на гораздо менший по размеру? Куда деваются 5MB?
Подскажите на мыло petrovav74@mail.ru где качнуть правильный CV V2.04 и выше.
ПЛЗ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
Vetal-Soft
Этот вопрос у вас будет возникать с выходом кажой новой версии?
http://electronix.ru/forum/index.php?showtopic=60446
IgorKossak
Цитата(Vetal-Soft @ Nov 6 2009, 12:33) *
Этот вопрос у вас будет возникать с выходом кажой новой версии?

Не будет, тему закрываю.
Если автор возникнет с этими вопросами ещё раз - прибью навсегда.
Здесь не свалка вареза!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.