logo

Dodatni tipi in njihovi makroni v C ++

Večino časa v konkurenčnem programiranju je treba dodeliti spremenljivko največjo ali najnižjo vrednost, ki jo lahko hrani vrsta podatkov, vendar je zapomnitev tako velikega in natančnega števila težko delo. Zato ima C ++ določene makrone, ki predstavljajo te številke, tako da jih je mogoče neposredno dodeliti spremenljivki, ne da bi dejansko vtipkali celotno številko.

The Datoteka glave v C ++ definira makrone, ki predstavljajo zgornjo in spodnjo mejo številnih vrst podatkov in definira makrone za float in dvojne omejitve. Ti makroni vam omogočajo, da te ekstremne vrednosti enostavno dodelite spremenljivkam, ne da bi jih ročno vtipkali.



Oglejmo si primer:

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


Izhod

git pull izvorni mojster
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

Podatkovni tipi in njihovi makroni v dosegu

Spodaj je omenjen seznam nekaterih makrov tipa podatkov:



Vrsta podatkov

Domet

Makro za min vrednost



Makro za največjo vrednost

char

-128 do +127

Char_min

Char_max

kratek char

-128 do +127

Schar_min

Schar_max

nepodpisan char

0 do 255

-

Flying_max

kratek int

-32768 do +32767

Shrt_min

Shrt_max

Nepodpisani kratki int

0 do 65535

-

USHRT_MAX

int

-2147483648 do +2147483647

Int_min

fcfs

Int_max

nepodpisan int

0 do 4294967295

-

Uint_max

dolga int

-9223372036854775808 do +9223372036854775807

Long_min

Long_max

nepodpisan dolg int

0 do 18446744073709551615

-

Usong_max

dolga dolga int

-9223372036854775808 do +9223372036854775807

Ship_min

Llong_max

nepodpisan dolg dolg int

0 do 18446744073709551615

-

dodajanje v polje java

Ullong_max

plavati

1.17549E-38 do 3.40282E+38

Flt_min

Flt_max

float (negativno)

-1.17549E -38 do -3.40282E+38

-Lt_min

-Flt_max

dvojno

2.22507E-308 do 1.79769E+308

Dbl_min

Dbl_max

dvojno (negativno)

-2.22507E -308 do -1.79769E+308

-Dbl_min

-Dbl_max

Omejitve podatkovnih vrst v sodobnem C ++

Zgornji makro pristop za zgornjo in spodnjo mejo tipa podatkov je stari pristop jezika C, ki ga podeduje C ++. Toda C ++ ima tudi svojo metodo, da programerjem zagotavlja enake informacije.

C ++ ponuja Numeric_limits<> Predloga razreda kot sodobna alternativa tem makronim. Ta predloga zagotavlja bolj objektno usmerjen pristop za dostop do omejitev vrst podatkov. Definiran je znotraj datoteka glave.

Oglejmo si primer:

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


Izhod

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

Ta pristop je priporočljivo najti zgornjo in spodnjo mejo vrste podatkov namesto makrov, saj je v primerjavi z makro pristopom bolj varen in berljiv.