|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.04.2013, 08:07 | #1 |
Форумчанин
Регистрация: 14.12.2012
Сообщений: 668
|
Сравнение signed и unsigned типов.
Здравствуйте! Сижу и не могу понять, я что-то не знаю о вышеупомянутой теме или баг в визуал С++:Код:
|
02.04.2013, 08:42 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
прямого сравнения поидее нет, разного диапазона типы.
а числа больше -1(0xFFFFFFFF), в целочисленном беззнаковом типе как бы нет. вообще, так делать не стоит.(и это не баг) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 02.04.2013 в 08:45. |
02.04.2013, 09:00 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
02.04.2013, 09:16 | #4 |
Форумчанин
Регистрация: 14.12.2012
Сообщений: 668
|
Понятно что типы разные, но на мой взгляд не должно быть разницы при изменении с signed int на signed short, а так не понятно чего ждать от программы.
Если signed, то первый, unsigned - второй Последний раз редактировалось Stilet; 02.04.2013 в 17:58. |
02.04.2013, 10:15 | #5 | |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 639
|
Цитата:
ICQ: 677936656 Gmail: ekEmbed@gmail.com
|
|
02.04.2013, 10:28 | #6 |
Форумчанин
Регистрация: 14.12.2012
Сообщений: 668
|
Я считаю, студия виновата, она должна выдать ошибку. Почему получается разный результат, в первом посте? Наверное, потому что в одном случаи левая часть приводится ко второй, а в другом вторая к первой. Другими словами, существует несколько путей сравнения, нормальный компилятор обязан начать ругаться.
П.с: думаю что разобрался, не буду я использовать unsigned. Благодарю за участие. |
02.04.2013, 11:24 | #7 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
студия ничего вам не должна, вы должны помнить о хранении типов в памяти и преобразовании оных, а не компиль думать за вас. поясните что за разные результаты? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
02.04.2013, 11:36 | #8 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
02.04.2013, 11:40 | #9 |
Форумчанин
Регистрация: 14.12.2012
Сообщений: 668
|
Чтобы понять меня, думаю надо скомпилить это в студии:
Код:
Нет ни одной ошибки, ни одного предупреждения. В процессе typedef может поменять тип, на который он будет указывать, т.е. простор для потенциальных ошибок. |
02.04.2013, 11:44 | #10 | ||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Цитата:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
warning C4018: '<' : signed/unsigned mismatch ? | Тёма_) | Visual C++ | 2 | 24.07.2012 19:33 |
Для типов данных char, short, int, long с квалификаторами signed, unsigned составить программу, которая, | listiksasha | Фриланс | 4 | 21.02.2011 12:26 |
Для типов данных char, short, int, long с квалификаторами signed, unsigned составить программу, которая, | listiksasha | Помощь студентам | 2 | 20.02.2011 12:57 |
Comparing signed and unsigned types - widened both operands | Человек_Борща | Общие вопросы Delphi | 4 | 09.01.2011 14:59 |