[an error occurred while processing this directive]
Вычисления со знаком в IAR ?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
миниатюрный аудио-видеорекордер mAVR

Отправлено zsn 06 июля 2002 г. 10:42

Кусок программы

int a;
char b;
char c;

void main (void)
{
c = a - b;
}

Если "с" меньше "b", то результат правильный, а если наоборот - то ерунда. Ошибка вычисления устраняется, если все числа в правой части объявить как int.
Почему так? B как это можно обойти (памяти и так мало, и терять по байту на каждой переменной ... ). Преобразовывать каждый раз к виду int перед вычислениями тоже радости мало - производительность критична.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru