Sobes.tech
Junior — Middle

Môžete vysvetliť rozdiely medzi rôznymi typmi int v jazyku C, ako sú size_t, long, short a int?

sobes.tech AI

Odpoveď od AI

V jazyku C existujú rôzne celočíselné typy, ktoré sa líšia veľkosťou a rozsahom hodnôt:

  • short — zvyčajne 16 bitov, môže uložiť hodnoty približne od -32 768 do 32 767 (pre znamienkový typ).
  • int — zvyčajne 32 bitov na moderných systémoch, rozsah závisí od platformy, ale často od -2 147 483 648 do 2 147 483 647.
  • long — veľkosť závisí od platformy, na 32-bitových systémoch zvyčajne 32 bitov, na 64-bitových — 64 bitov.
  • size_t — bez znamienka, určený na ukladanie veľkostí objektov a indexov polí. Jeho veľkosť závisí od architektúry (napríklad, 32 alebo 64 bitov). Zaručuje, že môže uložiť maximálnu veľkosť akéhokoľvek objektu v pamäti.

Hlavné rozdiely:

  • size_t je vždy bez znamienka a používa sa na veľkosti a indexy.
  • short, int, long môžu byť so znamienkom alebo bez (ak je uvedené unsigned), a ich veľkosť závisí od platformy.

Príklad použitia size_t:

#include <stdio.h>
#include <stddef.h>

int main() {
    size_t dĺžka = 10;
    int pole[10];

    for (size_t i = 0; i < dĺžka; i++) {
        pole[i] = (int)i;
        printf("%d ", pole[i]);
    }
    return 0;
}

Tu sa size_t používa na indexovanie poľa, čo je bezpečné a v súlade so štandardmi jazyka C.