GeorgeV 0 28 ноября, 2005 Опубликовано 28 ноября, 2005 · Жалоба Вопрос по опциям ИАРа - char можно сделать по умолчанию беззнаковым, а про int я такого не нашел, возможно ли это. А то у меня получилось, что 0х8000 < 0, т.е. по умолчанию int идет со знаком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rash 0 28 ноября, 2005 Опубликовано 28 ноября, 2005 · Жалоба Вопрос по опциям ИАРа - char можно сделать по умолчанию беззнаковым, а про int я такого не нашел, возможно ли это. А то у меня получилось, что 0х8000 < 0, т.е. по умолчанию int идет со знаком. Переопредели типы typedef (ом) если надо. и сделай WORD, DWORD и т.д. typedef unsigned char BYTE; typedef unsigned char WORD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GeorgeV 0 28 ноября, 2005 Опубликовано 28 ноября, 2005 · Жалоба Так я так и делаю, только в последнем примере не char а int. Просто, для char сделана специальная галочка, а про int не подумали. В "большом" Си int по умолчанию беззнаковый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 28 ноября, 2005 Опубликовано 28 ноября, 2005 · Жалоба Георгий, обычно программисты стремятся к независимости своих программ от конкретного компилятора или среды. Rash для этого указал Вам приемлемое решение. Стандарт MISRA, кстати, тожеэто рекомендует. Вы же наоборот пытаетесь сделать Ваш проект зависимым от "галочек" среды. Что касается знаковости типов, то насколько я помню, согласно стандарта только char по умолчанию беззнаковый, а int и long - знаковые. Или я ошибаюсь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GeorgeV 0 28 ноября, 2005 Опубликовано 28 ноября, 2005 (изменено) · Жалоба Я думаю, что Вы правы , спорить не буду. В тонкостях Си я еще не силен.:smile3046: Уточнился по борладндовскому хэлпу (Билдер), там сказано что и char по умолчанию знаковый. В IAR-е видимо для таких как я галочку поставили, чтоб хоть с char поначалу не заморачиваться. Привыкли, что в железе знаков нет. Изменено 28 ноября, 2005 пользователем Георгий Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 28 ноября, 2005 Опубликовано 28 ноября, 2005 · Жалоба Я думаю, что Вы правы , спорить не буду. В тонкостях Си я еще не силен.:smile3046: Уточнился по борладндовскому хэлпу (Билдер), там сказано что и char по умолчанию знаковый. В IAR-е видимо для таких как я галочку поставили, чтоб хоть с char поначалу не заморачиваться. Привыкли, что в железе знаков нет. В любом мало-мальски приличном букваре по С сказано - не закладываться на знаковость char вообще - нигде и никогда, ни явно, ни неявно. Вот писатели пикада не подумали об этом где-то пропустили при чтении ASCII-формата входящие симовлы через char - и мы имеем облом на русской букве "я" - код 0xFF, который при пропускании через знаковый char в int превращается в полновесный -1 и мы имеем unexpected end of file на строке "схема электрическая принципиальная" - надо большими буквами писать. Естественно, это моё предположение, но больно оно правдоподобно выглядит. Так о чём это я... А! Так вот, любая приличная книга говорит - если знак важен - указывать явно unsigned char или signed char - в зависимости от того, что надо. У меня тип char если используется - то это явное предупреждение для меня же более позднего - "тут хранятся не более чем символы, никакой арифметики, сравнение только с символьными константами на равенство" А стандарт языка С 99-го года заводит стандартный заголовочный файл stdint.h , в котором должны через typedef определяться типы int8_t uint8_t ... int64_t uint64_t. Я бы рекомендовал пользоваться этими типами, а не byte/word/dword (особенно учитывая то, что word на x86 - это halfword на ARM, dword на x86 - это word на ARM). Если stdint.h в поставке имеющегося компилятора нет - несложно написать и приложить самому. Что я во всех новых проектах и делаю уже года 4. И даже один старый, но развивающийся - не поленился со старых i08/u08/../i32/u32 пере-sed-ить на новые стандартные typedef-ы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 29 ноября, 2005 Опубликовано 29 ноября, 2005 · Жалоба Что касается знаковости типов, то насколько я помню, согласно стандарта только char по умолчанию беззнаковый, В Стандарте на С, afair, знаковость char отдана на откуп реализации. В Стандарте С++ типы char, unsigned char и signed char - это три разных типа. а int и long - знаковые. Да, целые типы - знаковые. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
chk 0 15 декабря, 2005 Опубликовано 15 декабря, 2005 · Жалоба Я использую WinAvr + VMLAB получается хорошая связка до этого работал на IAR C++ симулятор AVRstudio WinAvr немного больше код делает на компилит давольно таки хорошо VMLAB очень хороший симулятор правда не без хрехов На счет того что VMLAB - хороший я согласен - внутренности МК видит прекрасно!! Вот может кто-то знает как его вылечить от того чтобы он обрабатывал код больше 500 слов, меньше у меня программы не получаются.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rich 0 10 марта, 2006 Опубликовано 10 марта, 2006 · Жалоба Народ, подскажите новичку: скачал последнюю AStudio с плагином для С от GCC, но он пишет, что ПСС надо устанавливать отдельно. Установил с диска от книжки Голубцова версию 3.0.2 кажется. В хелпе к АВР Студии прочел как конфигурить, но вот беда кнопка с "..." у меня не жмется, не5 могу прописать пути. Что делать? Качать новую версию GCC или косяк в другом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
beer_warrior 0 10 марта, 2006 Опубликовано 10 марта, 2006 · Жалоба Несколько лет назад, когда начинал работать с gcc соблазнился возможностью прикрутить его к AStudio(разных версий). Полноценной работы так и не удалось добиться. Вроде бы с 4.10 это наконец работает,но предыдущий опыт убеждает - не стоИт на это тратить время -прикрути к любому текстовому редактору и воюй. Под тем же PN, который идет с WinAVR у меня подцеплены gcc под Win32, AVR, MSP,ARM.Под ним же работаю с TCL, Python и и редактирую HTML. Рука уже набита на конкретные меню и шорткаты. Ну а если позарез нужна отладка, тогда юзать студию как симулятор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 11 марта, 2006 Опубликовано 11 марта, 2006 · Жалоба Народ, подскажите новичку: скачал последнюю AStudio с плагином для С от GCC, но он пишет, что ПСС надо устанавливать отдельно. Установил с диска от книжки Голубцова версию 3.0.2 кажется. В хелпе к АВР Студии прочел как конфигурить, но вот беда кнопка с "..." у меня не жмется, не5 могу прописать пути. Что делать? Качать новую версию GCC или косяк в другом? вот эта версия автоматически подхватывается AVR-Studio http://prdownloads.sourceforge.net/winavr/...ll.exe?download (~14mb) почитать можно здесь: http://sourceforge.net/forum/forum.php?forum_id=446217 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться