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_tje vždy bez znamienka a používa sa na veľkosti a indexy.short,int,longmôž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.