![]() |
|
Модераторы: bsa |
![]()
|
|
| hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Хочется понять для чего используются некоторые идентификаторы.
Cогласно гарантированных минимальных диапазонов, соответствующих С++-стандарту ANSI/ISO модификатор singed вообще беполезный, как я вижу. Ведь какой бы не был тип, при добавлении данного модификатора к типу не меняется диапазон. Например, char -128 -127 signed char -128 -127 int -32 768 -32 767 signed int -32 768 -32 767 Тогда какой с него прок вообще? |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
Для int'ов - да. А вот с char'ами там не все так просто. Есть три типа: char, signed char, unsigned char, к какому из двух последних относится char - зависит от конкретной реализации. Стандарт по этому поводу говорит следующее:
Это сообщение отредактировал(а) Gluttton - 17.2.2014, 21:54 -------------------- Слава Україні! |
|||
|
||||
| hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Думал как это перевести, но как-то нескладно получается (whether вообще нормально перевести не выходит, т.к. обычно оно принимает значение "ли"): "Это определённая реализация.. где объекты могут принимать отрицательные значения." Так? В общем, дальше всё понятно. Говорится что есть 3 разных char являются отдельными типами (как я понял, подтипами). Но какая между ними разница? Ничего не говорится же..й |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
"Может ли char-объект хранить отрицательные величины - зависит от реализации" Как правило, если видишь whether можешь заменять его на if, может так будет проще с пониманием. Что это всё значит? Это значит, что есть два типа: signed char и unsigned char, а char является, в сущности, одним из них. Каким? Это зависит от реализации и стандартом не регламентировано. |
|||
|
||||
| akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
Эти кадры не писали переносимые программы. В один момент, лет 15 назад, я столкнулся с сей проблемой, когда переносил прогу с Linux на Intel на FreeBSD на Sun чтоли.
И вообще надо. Я тебе щас навскидку нарисую варианты, где signed имеет значение Добавлено через 7 минут и 49 секунд У нкоторых процев бывают (бывали) разные приколы. Они с этим не сталкивались, но это было. Это раз. Потом,С++ для весёлых ребят, должен реализовать все возможости, И перевод unsigned в signed тоже с трюками -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |