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
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+38Tietotyypit 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
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+38Tätä lähestymistapaa on suositeltavaa löytää tietotyypin ylä- ja alarajat makrojen sijasta, koska se on turvallisempi ja luettavissa makropohjaiseen lähestymistapaan verrattuna.