В этом уроке мы рассмотрим целочисленные типы данных фиксированного размера, которые были введены в C++11.

Проблема с обычными целочисленными типами

Обычные целочисленные типы (int, long и т.д.) могут иметь разный размер на разных системах. Это может привести к проблемам с переносимостью кода.

Целочисленные типы фиксированного размера

C++11 ввел новые целочисленные типы с фиксированным размером. Они определены в заголовочном файле :

#include <cstdint>

int main()
{
    std::int8_t i8 = 127; // 8-битное знаковое целое
    std::uint8_t ui8 = 255; // 8-битное беззнаковое целое
    std::int16_t i16 = 32767; // 16-битное знаковое целое
    std::uint16_t ui16 = 65535; // 16-битное беззнаковое целое
    std::int32_t i32 = 2147483647; // 32-битное знаковое целое
    std::uint32_t ui32 = 4294967295; // 32-битное беззнаковое целое
    std::int64_t i64 = 9223372036854775807; // 64-битное знаковое целое
    std::uint64_t ui64 = 18446744073709551615U; // 64-битное беззнаковое целое

    return 0;
}

Преимущества использования типов фиксированного размера

  • Гарантированный размер на всех платформах
  • Улучшенная читаемость кода
  • Более точный контроль над использованием памяти

Заключение

Использование целочисленных типов фиксированного размера может значительно улучшить переносимость и надежность вашего кода. Однако помните, что не все платформы могут поддерживать все эти типы, поэтому всегда проверяйте документацию для вашей целевой платформы.

Перейти к следующему уроку →