C/C++

Зачем нужны переменные с припиской 16, 32 и т.д?

Где их используют и зачем? И чем тогда являются переменные которые мы используем всегда? Тоесть обычный
int, char и т.д?
ипы с явным указанием размераСтандарт гарантирует их размеры, но не их существование. Т. е. теоретически можно встретить платформу, на которой нет нужного типа. Зато если уж программа скомпилировалась, то размер типа ты точно знаешь.Там ещё есть типы со словом least, например, uint_least32_t, если тебе надо хотя бы 32 бита.обычный деревянный intСтандарт не гарантирует его размер.не стоит использовать типы, размер которых меняется от платформы к платформеВсё зависит от задач. Если мне нужна 32-битная маска для перебора, то логично не полагаться на int. Если какой-то размер, то есть size_t, зависящий от битности программы. А если мне нужно вывести число процентов, то можно и обычный int взять.
ВК
Виктор Каптёл
2 017
Лучший ответ
Типы short, int, long на разных процессорных архитектурах и в разных компиляторах имеют разную длину. Если твой код от этого не зависит и для него достаточно минимальных ограничений, задаваемых стандартом - проще использовать эти типы.

Но нередко требуется, чтобы переменная имела строго определённую длину. Раньше для этого городили кучу директив препроцессора, теперь же в стандарт языка ввёл те самые типы с суффиксами - длина которых не зависит от особенностей процессора и компилятора.
Роман Логинов
Роман Логинов
72 581
стандарт для типов данных подразумевает минимальное выделения памяти под них. соответственно в каждой системе выделяемая память будет разная.
для int 16,32,64 систем будет выделено 2,4,8 байт(минимум) соответственно.
к примеру но тебе программе нужен размер именно 8 байт, иначе будут ошибки при вычислениях, переполнения и прочее. если под переменную будет выделен int то, в системе с размером int в 4 байта программа будет/может работать, но в какой-то момент начнутся крашы, ошибки, баги и тд.
как-то так

Похожие вопросы