Sobes.tech
Junior — Middle

C тилинде ар кандай int түрлөрүнүн, мисалы size_t, long, short жана int, айырмачылыктарын түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

C тилида турли тўлиқ сон турлари мавжуд бўлиб, улар ўлчамлари ва қийматлар диапазонига кўра фарқ қилади:

  • short — одатда 16 бит, тахминан -32,768 дан 32,767 гача қийматларни сақлай олади (имзо билан тур учун).
  • int — одатда 32 бит замонавий тизимларда, диапазон платформадан платформага ўзгариши мумкин, аммо кўпинча -2,147,483,648 дан 2,147,483,647 гача.
  • long — ўлчам платформадан платформага боғлиқ, 32-бит тизимларда одатда 32 бит, 64-бит тизимларда — 64 бит.
  • size_t — имзо бўлмаган тур, объектлар ўлчамлари ва массив индекси учун мўлжалланган. Унинг ўлчами архитектурага (масалан, 32 ёки 64 бит) боғлиқ. У ҳар қандай объектнинг энг катта ўлчамини сақлай олади.

Асосий фарқлар:

  • size_t ҳар доим имзо бўлмаган ва ўлчамлар ва индекси учун қўлланилади.
  • short, int, long имзо билан ёки имзо бўлмаган бўлиши мумкин (агар unsigned кўрсатилган бўлса), ва уларнинг ўлчами платформага боғлиқ.

size_tдан фойдаланиш мисоли:

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

int main() {
    size_t узунлик = 10;
    int массив[10];

    for (size_t i = 0; i < узунлик; i++) {
        массив[i] = (int)i;
        printf("%d ", массив[i]);
    }
    return 0;
}

Бу ерда size_t массивнинг индекси учун қўлланилади, бу хавфсиз ва C стандартларига мувофиқдир.