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

 
 
> short long непонятно работает
Vavan4ik
сообщение Mar 5 2009, 09:50
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 23-12-08
Из: Украина, Днепропетровск
Пользователь №: 42 690



Всем привет!

При написании программы столкнулся с такими приколами:
Почему-то переменные типа short long и long не могут сравниваться с литералами, например проверка на отрицательность, причем в тестовой проге все проверяет и работает. Неделю бьюсь ничего в голову не приходит, помогите кто знает...

short long Integ_M;
short long Prop_M;
short long Pid_Out_M;
...

if (Pid_Out_M < 0) {Z_CurrentMod = 0;}
else if (Pid_Out_M < 40) {Z_CurrentMod = 40;} // 15..40 => 40
else if (Pid_Out_M < ImaxMod) {Z_CurrentMod = Pid_Out_M;}
else {Z_CurrentMod = ImaxMod;} // >175 => 175

в итоге имеем такое сообщение:

Error [712] main.c; 509. can't generate code for this expression

Сообщение отредактировал Vavan4ik - Mar 5 2009, 09:53
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vavan4ik
сообщение Mar 5 2009, 10:32
Сообщение #2





Группа: Участник
Сообщений: 13
Регистрация: 23-12-08
Из: Украина, Днепропетровск
Пользователь №: 42 690



1) для начала
HI-TECH C PRO for the PIC10/12/16 MCU family candidate build 3206 V9.60PL4
Copyright © 1984-2008 HI-TECH SOFTWARE

2)
3.3.5 24-Bit Integer Data Types
HI-TECH C PRO for the PIC10/12/16 MCU Family supports four 24-bit integer types. short
long are 24-bit two’s complement signed integer types, representing integral values from -8,388,608
to +8,388,607 inclusive. Unsigned short and unsigned int are 16-bit unsigned integer
types, representing integral values from 0 to 16,777,215 inclusive. All 24-bit integer values are
represented in little endian format with the least significant byte at the lower address.
Variables may be declared using the signed short long int and unsigned short
long int keyword sequences, respectively, to hold values of these types. When specifying a
short long int type, the keyword int may be omitted. Thus a variable declared as short
long will contain a signed short long int and a variable declared as unsigned short
long will contain an unsigned short long int.

вродебы понятно, и даже работает в тестовой программе а реальной не хочет, зараза...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Vavan4ik   short long непонятно работает   Mar 5 2009, 09:50
- - _Pasha   Цитата(Vavan4ik @ Mar 5 2009, 12:50) Erro...   Mar 5 2009, 10:11
|- - xemul   Цитата(_Pasha @ Mar 5 2009, 13:11) На вся...   Mar 5 2009, 10:25
- - zltigo   Цитата(Vavan4ik @ Mar 5 2009, 12:50) shor...   Mar 5 2009, 10:20
|- - xemul   Цитата(Vavan4ik @ Mar 5 2009, 13:32) 1) д...   Mar 5 2009, 11:10
- - Vavan4ik   Спасибо за ответ, но как быть, если нужно работать...   Mar 5 2009, 11:23
|- - xemul   Цитата(Vavan4ik @ Mar 5 2009, 14:23) Спас...   Mar 5 2009, 11:28
- - Vavan4ik   дело в том, что и long выделывается, как ни крути ...   Mar 5 2009, 11:33
|- - xemul   Цитата(Vavan4ik @ Mar 5 2009, 14:31) дело...   Mar 5 2009, 11:58
- - _Pasha   Цитата(Vavan4ik @ Mar 5 2009, 13:32) HI-T...   Mar 5 2009, 12:03
- - Vavan4ik   я уже писал, что в тесте все работает красиво, а в...   Mar 5 2009, 12:13
|- - xemul   Цитата(Vavan4ik @ Mar 5 2009, 15:13) я уж...   Mar 5 2009, 12:40
- - Vavan4ik   большое человеческое спаПИВО!   Mar 5 2009, 12:54
- - Vavan4ik   Вот я еще хотел спросить знатоков, нужно ли подклю...   Mar 6 2009, 07:11
- - _Pasha   Цитата(Vavan4ik @ Mar 6 2009, 11:11) Ничч...   Mar 6 2009, 07:24


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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 02:21
Рейтинг@Mail.ru


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