В Cpp имеется множество встроенных типов данных и некоторые модификаторы, которые позволяют нам изменять характеристики типа данных по размеру и допустимому диапазону. В следующих строках мы запишем некоторые основные правила, которые следует учитывать при работе с типами данных.
Размеры
- char: всегда имеет длину 8 бит.
- wchar_t: гарантированно содержит любой символ машины
- int: имеет размер не меньше short
- long: имеет размер не меньше int
- long long: по размеру не меньше long.
- float: обычно представляет собой одно слово.
- double: состоит из двух слов.
- long double: состоит из трех или четырех слов.
#include <cstdlib> // EXIT_SUCCESS macro #include <iostream> // cout #include <typeinfo> // typeid #define GET_VAR_NAME(var) (#var) /*---------------------------------------------------------------------------*/ static void PrintInfo(const size_t data_type_size, const char *data_type_name, const char *var_name) { std::cout << "\tbyte size: " << data_type_size << "\tname: " << data_type_name << "\tvar: " << var_name << std::endl; } /*---------------------------------------------------------------------------*/ int main() { char chr_var; short sht_var; int int_var; long int lng_int_var; long long int lng_lng_int_var; float flt_var; double dbl_var; long double lng_dbl_var; PrintInfo(sizeof(chr_var), typeid(chr_var).name(), GET_VAR_NAME(chr_var)); PrintInfo(sizeof(sht_var), typeid(sht_var).name(), GET_VAR_NAME(sht_var)); PrintInfo(sizeof(int_var), typeid(int_var).name(), GET_VAR_NAME(int_var)); PrintInfo(sizeof(lng_int_var), typeid(lng_int_var).name(), GET_VAR_NAME(lng_int_var)); PrintInfo(sizeof(lng_lng_int_var), typeid(lng_lng_int_var).name(), GET_VAR_NAME(lng_lng_int_var)); PrintInfo(sizeof(flt_var), typeid(flt_var).name(), GET_VAR_NAME(flt_var)); PrintInfo(sizeof(dbl_var), typeid(dbl_var).name(), GET_VAR_NAME(dbl_var)); PrintInfo(sizeof(lng_dbl_var), typeid(lng_dbl_var).name()…