ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
389855
RedFroggy (22.02.2013 10:00 - 10:03, просмотров: 13390)
Keil C51 преобразование типов. Исходные условия: 1. Keil C51 8.04, (также проверялось на 9.50a и 9.51) 2. Silabs C8051F021 3. Уровень оптимизации от 2 до 8 Описание проблемы: есть глобальная переменная: unsigned int Var1; есть функция: f1(char *buff) в функцию передаётся указатель на буфер, для определённости пусть будет размером 256 байт в теле функции есть код: Var1 = buff[2] + 4; допустим, buff[2] на данный момент хранит значение 0xC0 в Var1 помещается не 0x00C4, а 0xFFC4 Как с этим бороться? Причём, если записать выражение как Var1 = 0xC0 + 4, то всё работает правильно.