Tietotyyppialueet ja niiden makro C ++: ssa

Useimmiten kilpailukykyisessä ohjelmoinnissa on tarpeen määrittää muuttuja. Tietotyyppi voi hallita maksimiarvoa tai minimiarvoa, mutta niin suuren ja tarkan numeron muistaminen tulee vaikeaksi työksi. Siksi C ++: lla on tiettyjä makroja edustamaan näitä numeroita, jotta ne voidaan osoittaa suoraan muuttujalle kirjoittamatta koko numeroa.

Se C ++: n otsikkotiedosto määrittelee makrot, jotka edustavat kokonaislukujen tietotyyppien ylä- ja alarajoja ja Määrittää makrojen kelluvan ja kaksinkertaisen rajan. Näiden makrojen avulla voit määrittää nämä ääriarvot helposti muuttujille kirjoittamatta niitä manuaalisesti.

Katsotaanpa esimerkkiä:

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      < <     '  n  nshort int ranges from: '      < <     SHRT_MIN       < <     ' to '      < <     SHRT_MAX      < <     endl  ;      cout      < <     '  n  int ranges from: '      < <     INT_MIN      < <     ' to '       < <     INT_MAX      < <     endl  ;      cout      < <     '  n  long int ranges from: '      < <     LONG_MIN      < <     ' to '       < <     LONG_MAX      < <     endl  ;      cout      < <     '  n  float ranges from: '      < <     FLT_MIN      < <     ' to '       < <     FLT_MAX      < <     endl  ;      return     0  ;   }   


Tulos

 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

Tietotyypit ja niiden makro

Joitakin tietotyyppisiä makroja mainitaan luettelo alla:

Tietotyyppi

Etäisyys

Makro min -arvolle

Max -arvon makro

hiiltyä

-128 -+127

Char_min

Char_max

lyhyt char

-128 -+127

Schar_min

Schar_max

allekirjoittamaton char

0 - 255

-

Lentävä_max

lyhyt int

-32768 -+32767

Shrt_min

Shrt_max

allekirjoittamaton lyhyt int

0 - 65535

-

Ushrt_max

int

-2147483648 -+2147483647

Int_min

Int_max

allekirjoittamaton int

0 - 4294967295

-

Uint_max

pitkä int

-9223372036854775808 -+9223372036854775807

Long_min

Long_max

allekirjoittamaton pitkä int

0 - 18446744073709551615

-

Usong_max

pitkä pitkä int

-9223372036854775808 -+9223372036854775807

Ship_min

Llong_max

allekirjoittamaton pitkä pitkä int

0 - 18446744073709551615

-

Ullong_max

kellua

1.17549E-38-3,40282E+38

Flt_min

Flt_max

kelluva (negatiivinen)

-1.17549E -38 --3,40282E+38

-Lt_min

-Flt_max

kaksinkertainen

2.22507E-308-1,79769E+308

Dbl_min

Dbl_max

kaksinkertainen (negatiivinen)

-2.22507E -308 --1,79769E+308

-Dbl_min

-Dbl_max

Tietotyyppirajat nykyaikaisessa C ++: ssa

Yllä oleva makrolähestymistapa tietotyypin ylä- ja alarajoihin on C ++: n perimä vanha C -kielen lähestymistapa. Mutta C ++: lla on myös oma menetelmä tarjota ohjelmoijoille samat tiedot.

C ++ tarjoaa numeerinen_limit <> Luokkamalli moderni vaihtoehto näille makroille. Tämä malli tarjoaa oliokeskeisemmän lähestymistavan tietotyyppirajojen pääsyyn. Se on määritelty otsikkotiedosto.

Katsotaanpa esimerkkiä:

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      < <     '  n  int ranges from: '      < <     numeric_limits   <  int  >::  min  ()      < <     ' to '       < <     numeric_limits   <  int  >::  max  ()      < <     endl  ;      cout      < <     '  n  long int ranges from: '      < <     numeric_limits   <  long  >::  min  ()      < <     ' to '       < <     numeric_limits   <  long  >::  max  ()      < <     endl  ;      cout      < <     '  n  float ranges from: '      < <     numeric_limits   <  float  >::  min  ()      < <     ' to '       < <     numeric_limits   <  float  >::  max  ()      < <     endl  ;      return     0  ;   }   


Tulos

 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

Tätä lähestymistapaa on suositeltavaa löytää tietotyypin ylä- ja alarajat makrojen sijasta, koska se on turvallisempi ja luettavissa makropohjaiseen lähestymistapaan verrattuna.