Пост N: 8
Зарегистрирован: 21.02.12
Откуда: Украина, Луганская обл.
Рейтинг:
0
Отправлено: 02.01.13 10:04. Заголовок: Си сравнение знаковых переменных (signed char)
По сути вопроса два : 1. Каков алгоритм сравнения знаковых переменных? (если знаки одинаковые, то все ясно, а вот с разными знаками ...) 2. Допускается ли в Си вот такие комбинации :
цитата:
void func(signed a,b) { if(a ^ b){#define z >= } //если знаки разные употребляем <= else {#define z <= }
Или компилятор учитывает эти ньюансы и обращает внимание на разряд знака ?
Разобрался - компилятор учитывает бит знака. Просто необходимо всегда сопровождать значение типом signed , иначе он может переопределится как ansigned. У меня он переопределился в функции
цитата:
signed char a; unsigned char func(unsigned char c) {.......} void main(void) { func(a); }
Беззнаковому аргументу "с" было присвоено значение знакового "а" - в результате компилятор в функции работал со значением с типом unsigned char
http://shot.qip.ru/009EsZ-3cuDY80D2/ Пытаюсь освоить Си, только через "железо". Вашу задачу пробовал через 2-е лампочки. Получилось. Зажглась нужная лампочка. Не обращал внимание на этот вопрос. Теперь буду! Не обращайте внимание на вопросы в исходнике, это кириллица в программе FlowCode.
Все даты в формате GMT
3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет