В чем разница между подписанным и обычным коротким в c ++? Диапазон отличается?
short
является signed
по умолчанию, поэтому нет никакой разницы.
Имена signed short int
, signed short
, short int
а также short
являются синонимами и означают один и тот же тип в C ++.
Целые числа подписаны по умолчанию в C ++, что IMO приносит существование signed
ключевое слово в вопрос. Технически это избыточно, может быть, оно вносит определенный вклад, но вряд ли кто-то использует его в производстве. Все знают, что целые числа подписаны по умолчанию. Я, честно говоря, не помню, когда в последний раз видел signed
в производственном коде.
Что касается поплавков и двойников — они вообще не могут быть без знака, они всегда подписаны.
В этом отношении синтаксис C ++ немного избыточен, по крайней мере, IMO. Существует несколько способов сказать одно и то же, например, signed short int
, signed short
, short int
а также short
и то, что вы говорите, может зависеть от платформы или даже от компилятора.
Фреймворки, такие как Qt, например, объявляют свои собственные соглашения, которые являются более короткими и информативными, как, например:
quint8, quint16, quint32, quint64 — все беззнаковые целые числа с числом, указывающим размер в битах, в той же логике:
qint8, qint16, qint32, qint64 являются целыми числами со знаком с соответствующей шириной в битах.
uint
по крайней мере для меня гораздо предпочтительнее unsigned
или же unsigned int
в той же логике у вас также есть ushort
что предпочтительнее unsigned short int
, Существует также uchar
чтобы завершить короткую трудную семью.