Повечето пъти в конкурентното програмиране е необходимо да се присвои променливата максималната или минималната стойност, която типът на данните може да се държи, но запомнянето на такъв голям и прецизен брой е трудна работа. Следователно C ++ има определени макроси, които да представят тези числа, така че те да могат да бъдат директно присвоени на променливата, без всъщност да въвеждат целия номер.
The
Нека да разгледаме пример:
C++#include // for int char macros #include // for float double macros #include using namespace std; int main() { // Displaying ranges with the help of macros cout << 'char ranges from: ' << CHAR_MIN << ' to ' << CHAR_MAX << endl; cout << 'nnshort int ranges from: ' << SHRT_MIN << ' to ' << SHRT_MAX << endl; cout << 'nint ranges from: ' << INT_MIN << ' to ' << INT_MAX << endl; cout << 'nlong int ranges from: ' << LONG_MIN << ' to ' << LONG_MAX << endl; cout << 'nfloat ranges from: ' << FLT_MIN << ' to ' << FLT_MAX << endl; return 0; }
Изход
jquery това щракване
char ranges from: -128 to 127
nshort int ranges from: -32768 to 32767
int ranges from: -2147483648 to 2147483647
long int ranges from: -9223372036854775808 to 9223372036854775807
float ranges from: 1.17549e-38 to 3.40282e+38
Типове данни и макросите им на обхвата
Списък на някои от макросите от типа данни е споменат по -долу:
Тип данни | Обхват | Макрос за мин. Стойност | Макрос за максимална стойност |
---|---|---|---|
Чар | -128 до +127 | Char_min | Char_max |
Кратка чара | -128 до +127 | Schar_min | Schar_max |
неподписан чар | 0 до 255 | - | Flying_max |
Кратка int | -32768 до +32767 | Shrt_min | Shrt_max |
неподписан къса int | 0 до 65535 | - | Ushrt_max |
int | -2147483648 до +2147483647 | Int_min | Int_max |
неподписан int | 0 до 4294967295 | - | Uint_max |
дълъг int | -9223372036854775808 до +9223372036854775807 | Long_min | Long_max |
неподписан дълъг int | 0 до 18446744073709551615 | - масив срещу arraylist | Usong_max |
дълъг дълъг int | -9223372036854775808 до +9223372036854775807 | Ship_min | Llong_max |
неподписан дълъг дълъг int | 0 до 18446744073709551615 | - | Ullong_max |
float | 1.17549E-38 до 3.40282E+38 | Flt_min | Flt_max |
Поплавък (отрицателен) array.sort в java | -1.17549E -38 до -3.40282e+38 | -Lt_min | -Flt_max |
двойно | 2.22507E-308 до 1.79769E+308 | Dbl_min | Dbl_max |
двойно (отрицателно) | -2.22507E -308 до -1.79769E+308 | -Dbl_min | -Dbl_max |
Тип на данните ограничения в съвременния C ++
Горният макро подход за горната и долната граница на типа данни е старият подход на C език, наследен от C ++. Но C ++ също има свой метод за предоставяне на програмисти със същата информация.
C ++ предлага числово_лимити<> класен шаблон като модерна алтернатива на тези макроси. Този шаблон предоставя по-обектно-ориентиран подход за достъп до ограничения за типа на данните. Тя е дефинирана вътре в
Нека да разгледаме пример:
C++#include #include using namespace std; int main() { // Displaying ranges with the help of macros cout << 'short int ranges from: ' << numeric_limits<short int>::min() << ' to ' << numeric_limits<short int>::max() << endl; cout << 'nint ranges from: ' << numeric_limits<int>::min() << ' to ' << numeric_limits<int>::max() << endl; cout << 'nlong int ranges from: ' << numeric_limits<long>::min() << ' to ' << numeric_limits<long>::max() << endl; cout << 'nfloat ranges from: ' << numeric_limits<float>::min() << ' to ' << numeric_limits<float>::max() << endl; return 0; }
Изход
short int ranges from: -32768 to 32767
int ranges from: -2147483648 to 2147483647
long int ranges from: -9223372036854775808 to 9223372036854775807
float ranges from: 1.17549e-38 to 3.40282e+38
Препоръчва се да се използва този подход, за да се намери горната и долната граница на типа данни вместо макроси, тъй като е по-безопасен и четен в сравнение с макро-базирания подход.