logo

Datu tipa diapazoni un to makro C ++

Lielākoties konkurences programmēšanas laikā ir jāpiešķir mainīgais, kas ir maksimālā vai minimālā vērtība, ko var saglabāt datu tips, taču tik liela un precīza skaitļa atcerēšanās ir grūts darbs. Tāpēc C ++ ir daži makro, lai attēlotu šos skaitļus, lai tos varētu tieši piešķirt mainīgajam, faktiski neiesniedzot visu numuru.

Līdz Galvenes fails C ++ definē makro, kas apzīmē skaitļu datu tipu augšējās un apakšējās robežas un Definē makro pludiņa un dubultās robežas. Šie makro ļauj jums viegli piešķirt šīs ekstrēmās vērtības mainīgajiem, manuāli tos neļaujot.



Apskatīsim piemēru:

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; } 


Izvade

iekapsulēšanas programma
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

Datu tipi un to diapazona makro

Dažu datu tipa makro saraksts ir minēts zemāk:



Datu tips

Diapazons

Makro minimālajai vērtībai



Makro maksimālajai vērtībai

apkopot

-128 līdz +127

Char_min

Char_max

īss char

-128 līdz +127

Schar_min

Schar_max

neparakstīts char

0 līdz 255

-

Flying_max

īss int

-32768 līdz +32767

SHRT_MIN

SHRT_MAX

neparakstīts īss int

0 līdz 65535

-

Ushrt_max

int

-2147483648 līdz +2147483647

Int_min

Int_max

neparakstīts int

0 līdz 4294967295

-

Uint_max

ilgi int

-9223372036854775808 līdz +9223372036854775807

Long_min

Long_max

neparakstīts ilgi int

java virkne uz veselu skaitli

0 līdz 18446744073709551615

-

Usong_max

ilgi ilgi int

-9223372036854775808 līdz +9223372036854775807

Ship_min

Llong_max

neparakstīts ilgi ilgi int

0 līdz 18446744073709551615

-

Ullong_max

peldēt

1.17549E-38 līdz 3.40282E+38

Flt_min

Flt_max

rekursija java

pludiņš (negatīvs)

-1.17549E -38 līdz -3,40282E+38

-Lt_min

-Flt_max

dubultot

2.22507E-308 līdz 1,79769E+308

Dbl_min

Dbl_max

dubultā (negatīvs)

-2.22507E -308 līdz -1.79769E+308

-Dbl_min

-Dbl_max

Datu tipa ierobežojumi mūsdienu C ++

Iepriekš minētā makro pieeja datu tipa augšējām un apakšējām robežām ir vecā C valodas pieeja, kuru manto C ++. Bet C ++ ir arī sava metode, lai programmētājiem sniegtu tādu pašu informāciju.

C ++ piedāvā numeric_limits<> Klases veidne kā mūsdienīga alternatīva šiem makro. Šī veidne nodrošina uz objektu orientētāku pieeju datu tipa ierobežojumu piekļuvei. Tas ir definēts iekšpusē galvenes fails.

Apskatīsim piemēru:

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; } 


Izvade

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

Ieteicams izmantot šo pieeju, lai makro vietā atrastu datu tipa augšējās un apakšējās robežas, jo tas ir vairāk drošs un lasāms, salīdzinot ar makro balstīto pieeju.