0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 4
|
|
1 | |
Каким бы стоило сделать тип char по умолчанию — signed или unsigned?28.12.2015, 02:30. Показов 1595. Ответов 5
Метки нет (Все метки)
0
|
28.12.2015, 02:30 | |
Ответы с готовыми решениями:
5
Тип signed char и unsigned char Тип char.Signed/unsigned.Отличие типов данных. Как сделать unsigned или signed или long класс? Char unsigned char signed char длинна Кааак |
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
28.12.2015, 10:26 | 3 |
В некоторых IDE позволяет установить для всего проекта. Есть также флаг у транслятора gcc -funsigned-char
Как поступить тебе? От собственного вкуса и решаемых задач. Лично я часто использую char вместо int, когда точно знаю, что значение невелико. И посему мне удобнее по-умолчанию считать char unsigned. но самое лучшее - явно указывать, когда это имеет значение. Чтобы голова не болела потом.
0
|
28.12.2015, 10:45 | 4 |
Отвечу сложно.
В условиях реального применения переменных такого типа? Никаким. То есть оставить как есть.
Если бы была возможность сделать лучше и переделать попутно еще некоторые аспекты языка? Тогда signed. Хотя бы ради консистентности с целыми типами. Но это чисто мечты/хотелки.
0
|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 4
|
|
28.12.2015, 12:35 [ТС] | 5 |
Спасибо за ответы!
0
|
28.12.2015, 16:53 | 6 |
Думаю, его не случайно сделали неопределенным. Си активно используется на компьютерах разной архитектуры и для разных микропроцессоров. Есть процедуры, где неважно - знаковый он или беззнаковый, но важна эффективность. Представим, что у процессора есть битовый беззнаковый сдвиг вправо, а знакового нет (или наоборот). Что делать с процедурами, использующими команды типа (chr>>3)&7? Пусть у них chr знаковый, а у нашего процессора беззнаковый. И придется компилятору вместо пары команд делать несколько, имитируя ненужную в общем знаковость...
0
|
28.12.2015, 16:53 | |
28.12.2015, 16:53 | |
Помогаю со студенческими работами здесь
6
Signed char перевести с unsigned char Значения типов данных (signed, unsigned, char) Надо перевести переменную типа unsigned char* в signed int и обратно Определение диапазонов переменных типов char, short, int и long (как signed, так и unsigned) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |