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

 
 
> Как в CodeVision работает галочка"Promote char to int"?
-=Женек=-
сообщение Jan 9 2011, 19:38
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 559
Регистрация: 6-09-06
Пользователь №: 20 131



Господа, есть вопрос.
Полдня потратил на вылавливание косяка в программе.

Есть функция, которая принимает параметр типа unsigned int:

void Func(unsigned int i)

Косяк был в том, что я подставлял туда переменную типа unsigned char, умноженную на некое число. КОгда произведение unsigned char на это число не превышало 256, все было нормально, когда превышало - начинались косяки.
Т.Е., не важно какого типа переменная произведения, если один из множителей unsigned char, произведение выше 256 никак не получится.

Нашлось 2 решения.
Первое - сделать эту переменную типа unsigned int.
Второе - поставить в настройках галочку - "promote char to int".

По последнему пункту вопрос - что все-таки делает эта галка? Преобразуетт char в int по необхоидмости, или же преобразуются все char переменные?
Меня беспокоит экономия памяти, вот я и думаю - какое из приведенных решений рациональней - первое или второе?

Спасибо.
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 16)
sigmaN
сообщение Jan 15 2011, 14:29
Сообщение #16


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Не, Keil это хорошо. Даже очень хорошо))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Serj78
сообщение Jan 16 2011, 19:27
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Скажу, как пересевший с CV на Кейл sm.gif

К CV возвращаться не хочется. sm.gif В основном- из-за удобства оформления компилятора.

Опыт общения с ним и внимание к соответствию типов имеет , в общем-то положительный результат.

Офигенно не хватало спецификатора "eeprom", очень жалел поначалу. Но, написав библиотеку для внешней памяти, стало полегче.

Из "отрицательных" навыков - писать выражение в несколько строчек- немного увеличивало размер написанного (не компилируемого) кода.

Также порадовало что некоторые математические функции, (тригонометрия) передранные из CV, работают быстрее нежели армовские. Возможно, в ущерб точности.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:18
Рейтинг@Mail.ru


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