A C/C++ nagyon laza definíciókkal rendelkezik az alapvető egész adattípusokra vonatkozóan (char short in long és long long). A nyelv garantálja, hogy legalább néhány értéktartományt képviselhetnek, de bármely adott platform (a fordító operációs rendszer hardvere) nagyobb lehet ennél.
A jó példa hosszú. Egy gépen 32 bites lehet (a C által megkövetelt minimum). A másiknál 64 bites. Mi a teendő, ha egy pontosan 32 bites egész típust szeretne? Itt jön be az int32_t: ez egy álnév az adott rendszer által használt egész számokhoz, ami pontosan 32 bites.
Sablon:
intN_t or uintN_t Where N is width of integer which can be 8 16 32 64 or any other type width supported by the library.
// C++ program to show use of extended integral types #include using namespace std; int main() { uint8_t i; // i with width of exact 8 bits // Minimum value represented by unsigned 8 bit is 0 i = 0; cout << "Minimum value of it: "<< (int)i << endl; // Maximum value represented by unsigned 8 bit is 255 i = 255; cout << "Maximum value of it: "<< (int)i << endl; // Warning: large integer implicitly truncated to // unsigned type. It will print any garbage value i = 2436; cout << "Beyond range value of it: " << (int)i << endl; return 0; }
Kimenet:
In function 'int main()': 19:7: warning : large integer implicitly truncated to unsigned type [-overflow] i = 2436; ^ Minimum value of i : 0 Maximum value of i : 255 Beyond range value of i : 132
Különböző variációk
1. Rögzített szélességű előjel nélküli 8 bites egész szám: uint8_t
Ez azt jelenti, hogy pontosan 8 bites előjel nélküli int-et adj meg.
2. Minimális szélesség előjel nélküli 8 bites egész szám: uint_least8_t
Ez azt jelenti, hogy adja meg a legkisebb típusú unsigned int-et, amely legalább 8 bites. Memóriafogyasztásra optimalizálva.
3. Leggyorsabb minimális szélességű előjel nélküli 8 bites egész szám: uint_fast8_t
Ez azt jelenti, hogy adj nekem egy legalább 8 bites előjel nélküli int-et, ami gyorsabbá teszi a programomat. Az igazítási megfontolások miatt nagyobb adattípust választhat. Sebességre optimalizálva.
Így az uint8_t garantáltan pontosan 8 bit széles. Az uint_least8_t a legkisebb egész szám, amely garantáltan legalább 8 bit széles. Az uint_fast8_t a leggyorsabb egész szám, amely garantáltan legalább 8 bit széles.
Tehát a kiterjesztett integrál típusok segítenek az írásban hordozható és hatékony kód.
általánosság java-ban