Toggle menu
Toggle preferences menu
Toggle personal menu
Neprihlásený/á
Your IP address will be publicly visible if you make any edits.
Verzia z 19:17, 31. október 2024, ktorú vytvoril SKevo (diskusia | príspevky) (Vytvorená stránka „Ako môžeme uložiť nejakú hodnotu v jazyku C pre neskoršie použitie? {{Pojmová mapa}} Premenné sa používajú preto, aby sme uložili nejakú hodnotu ktorú chceme neskôr použiť, prípadne ak chceme uložiť nejaký výpočet a použiť ho viackrát bez toho, aby sme museli algoritmus výpočtu zakaždým opakovať. == Dátové typy == Ak chceme vytvoriť nejakú premennú v jazyku C, musíme najskôr poznať jej '''dátový typ'''. Je to spôsob, kt…“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)

Ako môžeme uložiť nejakú hodnotu v jazyku C pre neskoršie použitie?


Premenné sa používajú preto, aby sme uložili nejakú hodnotu ktorú chceme neskôr použiť, prípadne ak chceme uložiť nejaký výpočet a použiť ho viackrát bez toho, aby sme museli algoritmus výpočtu zakaždým opakovať.

Dátové typy

Ak chceme vytvoriť nejakú premennú v jazyku C, musíme najskôr poznať jej dátový typ. Je to spôsob, ktorý definuje ako je obsah premennej uložený v operačnej pamäti (RAM). Ak chceme napríklad uložiť hodnotu, ktorá reprezentuje pozíciu znaku v ASCII tabuľke, použijeme typ char. Pre desatinné čísla použijeme float, a podobne. Je dôležité vyberať správne dátové typy - napríklad, desatinné číslo nie je možné uložiť v pamäti ako celé číslo (s tým, že takéto číslo by sa dalo používať a robilo by to, čo očakávame).

Medzi základné dátové typy patria:

Kľúčové slovo

pre definíciu

Rozsah (vrátane) Povoľuje negatívne hodnoty? Koľko bitov zaberá v pamäti? Využitie
char -128 až 127 áno 8 Používame ho pre uchovávanie znakových hodnôt, pretože reprezentuje práve jeden znak v ASCII tabuľke (sám o sebe ale nepredstavuje reťazec viacerých znakov!).
unsigned char 0 až 255 nie 8 Vo veľmi špecifických prípadoch (pozri nižšie).
short -32 768 až

32 767

áno 16 V špecifických prípadoch, ak potrebujeme dodatočnú kontrolu nad využívaním pamäte RAM (napríklad, ak vyvíjame softvér pre prostredie s malým množstvom využiteľnej pamäte)[1].
unsigned short 0 až 65 535 nie 16 Vo veľmi špecifických prípadoch (pozri nižšie).
int -2 147 483 648 až

2 147 483 647

áno 32 V prevažnej väčšine prípadov, keď chceme reprezentovať celočíselnú hodnotu (v aritmetických výpočtoch, pre indexy v cykloch a podobne).
unsigned int 0 až

4 294 967 295

nie 32 Vo veľmi špecifických prípadoch (pozri nižšie).
long long -9 223 372 036 854 775 808 až

9 223 372 036 854 775 807

áno 64 Ak potrebujeme reprezentovať veľmi veľké čísla, kde je int nedostatočný.

Poznámka: zaberá 64 bitov, na 32-bitových systémoch sa "zlepia" dve 32-bitové adresy dokopy.

unsigned long long 0 až

18 446 744 073 709 551 615

nie 64 Vo veľmi špecifických prípadoch (pozri nižšie).

Poznámka: zaberá 64 bitov, na 32-bitových systémoch sa "zlepia" dve 32-bitové adresy dokopy.

float -3.4 × 1038 až 3.4 × 1038 áno 32 Ak potrebujeme vo všeobecnosti uložiť nejaké desatinné číslo.
double -1.7 × 10308 až 1.7 × 10308 áno 64 Ak potrebujeme uložiť desatinné číslo, na ktoré float nepostačuje.

Poznámka: zaberá 64 bitov, na 32-bitových systémoch sa "zlepia" dve 32-bitové adresy dokopy.

Kedy použiť signed alebo unsigned?

Hlavný rozdiel medzi signed a unsigned číslami je v tom, že signed čísla môžu byť negatívne (< 0), ale unsigned nemôžu. Pomenovanie pochádza (samozrejme) z angličtiny, kde sa znamienko negácie označuje ako "negation sign" - samotné znamienko je "sign", a teda premenné ktoré sú signed by sa dali preložiť ako "oznamienkované" (so znamienkom).

Umožňujú uloženie čísiel v väčším rozsahom, pretože bit ktorý získame navyše namiesto znamienka sa použije pre zväčšenie rozsahu (keďže môžeme kombinovať jeden bit navyše, a tým pádom uložiť väčšie čísla). Nevýhoda ale je, že počet využitých bitov v pamäti sa neredukuje a vo všeobecnosti iba zamieňame väčší rozsah s možnosťou ukladať negatívne čísla (teda, nemôžme ich použiť s úmyslom znížiť pamäť, ktorú náš program používa). Nie sú taktiež vhodné pre indexy, ako by sa na prvý pohľad mohlo zdať[2].

Sú preto vhodné iba v niekoľkých špecifických prípadoch:

  • ak pracujeme s bitmi a bitovými operáciami
  • ak sme zúfalí a potrebujeme vyšší rozsah pre uloženie nášho čísla
  • ak využívame ich vlastnosti v iných špecifických prípadoch, napríklad v kryptografii, atď...

V skratke, je lepšie o nich moc nepremýšľať pretože v kontexte bežných programovacích problémov nie sú výhodné a benefity ktoré poskytujú sú zatienené ich slabými stránkami.