int всегда коротко, когда определено?

0

Просто небольшой вопрос: сегодня я вернулся к значению, которое могут иметь типы переменных, и я задавался вопросом, всегда ли короткий или длинный int всегда короткий или длинный, например, подписанный или неподписанный!

int i ; //short or long ?
  • 0
    Аналогичный вопрос: stackoverflow.com/questions/589575/size-of-int-long-etc
  • 0
    @Maroun Maroun: так что вы отредактировали мой вопрос, но не могли бы вы мне сказать, как мне это сделать? в код с моего мобильного телефона (== мобильная версия стека переполнения)?
Теги:

5 ответов

2
Лучший ответ

Ответ "ни один". int без модификатора int, short int не больше int и может быть одного размера. long int не меньше, чем int, но может быть одного размера. Все это соответствует стандарту C++, который также говорит, что short должен быть не менее 16 бит, а long должен быть не менее 32 бит. Но вполне возможно иметь машину, где все 32 или 64 бита.

  • 0
    Понимаю. Но какие значения будет содержать простой int (подписанный)? От -32767 до 32767, это будет то же самое, что и короткий int!
  • 0
    Зависит от реализации компилятора. int гарантированно имеет по крайней мере 16 бит, что охватывает этот диапазон, но в большинстве современных систем значение int составляет 32 бита. Это также может быть 36, 48 или 64 бита. Если у вас есть конкретные требования, чтобы ваши переменные имели определенный диапазон, то использование typedef s, которые определяют типы битов X (или «не меньше X»), является хорошей идеей. Существует cstdint и stdint.h (для C ++ и C соответственно), которые определяют ряд типов, таких как uint32_t и uint_least32_t для этой цели. Если вам все равно, используйте int .
Показать ещё 4 комментария
2

ни. это целочисленный тип.

2

Нет. int - отличный от short и long. short, int и long могут иметь 3 разных размера. (Также обратите внимание, что обычно вместо изменения int как short int или long int обычно предпочитают просто писать short или long.)

2

Это тоже. На многих системах, включая обычные Linux, int будет 32 бита, короткий будет 16 и длинным 64. Однако это не гарантируется языком C - типы нужно заказывать по размеру, t должны быть такими конкретными размерами (например, int может быть 64 бит в некоторых системах или 16).

1

Если не указано, int всегда подписывается.

Просто знать, короткий - 16 бит, длинный 32 бита, а int - 16 или 32 бита в зависимости от компилятора. Если не указано, все они подписаны по умолчанию.

  • 0
    short - не менее 16 бит, int - не менее 16 бит, long - не менее 32 бит. Кроме того, sizeof(short) <= sizeof(int) и sizeof(int) <= sizeof(long) .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню