В этом уроке мы рассмотрим целочисленные типы данных фиксированного размера, которые были введены в 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;
}
Преимущества использования типов фиксированного размера
- Гарантированный размер на всех платформах
- Улучшенная читаемость кода
- Более точный контроль над использованием памяти
Заключение
Использование целочисленных типов фиксированного размера может значительно улучшить переносимость и надежность вашего кода. Однако помните, что не все платформы могут поддерживать все эти типы, поэтому всегда проверяйте документацию для вашей целевой платформы.