c Зачем использовать uint32_t? Stack Overflow на русском

Точный размер типов нужен при взаимодействии разных компонентов системы, которые могут работать на различных платформах. Sizeof(int) не регламентирован стандартом, его…
1 Min Read 0 9

Точный размер типов нужен при взаимодействии разных компонентов системы, которые могут работать на различных платформах. Sizeof(int) не регламентирован стандартом, его нельзя неопасно использовать в таких случаях. Но если переменная этого типа не выходит за границы одной системы, то разумнее опираться именно на базовые типы, вроде int. Размер int может быть разным на разных платформах и может также зависеть от разных компиляторов. А при использовании того же uint32_t аккурат известно сколько он занимает. Еще встречалась такая ситуация что Int не хватало. А использование вещественных типов не допускается. Приходилось использовать uint32_t. Картинки, архивы, видео, бинарные конфиги различных программ имеют фиксированные структуры.

Всё сломается по очевидным причинам.

И если там какое-то поле является беззнаковым целым размером 4 байта, то нужно использовать платформонезависимые типы. Всё зависит от задач. Если мне нужна 32-битная личина для перебора, то логично не рассчитывать на int. Если какой-то размер, то уничтожать size_t, зависящий от битности программы. А если мне нужно вывести число процентов, то можно и обыкновенный int цапнуть. Там ещё проглатывать типы со словом least, шеймейл аналь например, uint_least32_t, если тебе необходимо хотя бы 32 бита. Пусть, каждое информация состоит из 10 чисел по 4 байта. Но одна система 32 бита, а вторая – 64.

Earnestine Langer

Earnestine Langer

Leave a Reply

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights