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

 
 
> Проблемы c IAR AVR!
Yura_Kyiv
сообщение Nov 21 2006, 11:31
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 7-11-06
Пользователь №: 22 049



Имеется IAR 4.20. Выполняю небольшую программу и угадайте, что я получаю на выходе??? 32640+4294934528!!

unsigned long int L1=0,L2=0;
unsigned char C1;

int main( void )
{
C1=0x80;
L1=C1*255;
L2=C1*256;
return (L1+L2);
}

В Borland C++, Visual Studio результат правильный!
Только не надо говорить, что надо писать так или C1 должно быть Long Int!
L2=(long int)C1*256;

Как правильно настроить IAR????
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Nov 21 2006, 12:43
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Придется правильно писать, поскольку сначало делаются вычисления, а потом приведение к типу


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
tag
сообщение Nov 22 2006, 09:39
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561



Цитата(arttab @ Nov 21 2006, 13:43) *
Придется правильно писать, поскольку сначало делаются вычисления, а потом приведение к типу

...вообще-то можно типами оперировать и во время вычислений

Цитата(Yura_Kyiv @ Nov 21 2006, 12:31) *
Имеется IAR 4.20. Выполняю небольшую программу и угадайте, что я получаю на выходе??? 32640+4294934528!!

unsigned long int L1=0,L2=0;
unsigned char C1;

int main( void )
{
C1=0x80;
L1=C1*255;
L2=C1*256;
return (L1+L2);
}

В Borland C++, Visual Studio результат правильный!
Только не надо говорить, что надо писать так или C1 должно быть Long Int!
L2=(long int)C1*256;

Как правильно настроить IAR????




...странновато, потому что в процессе вычисления выражения компилятор сам должен приводить типы, в данном случае к unsigned long int, может компилятор кривой? ...попробуй в опциях для компилятора указать Strict ISO/ANSI
Go to the top of the page
 
+Quote Post



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

 


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


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