Sobes.tech
Junior — Middle

El tudná magyarázni a különböző int típusok közötti különbségeket a C nyelvben, mint például a size_t, long, short és int?

sobes.tech MI

Válasz az MI-től

A C nyelvben különböző egész típusok léteznek, amelyek méretükben és értéktartományukban különböznek:

  • short — általában 16 bit, körülbelül -32 768-tól 32 767-ig tárolhat értékeket (a jelzett típus esetén).
  • int — általában 32 bit modern rendszereken, a tartomány platformfüggő, de gyakran -2 147 483 648-tól 2 147 483 647-ig.
  • long — mérete platformfüggő, 32 bites rendszereken általában 32 bit, 64 bites rendszereken — 64 bit.
  • size_t — előjel nélküli típus, amely az objektumok méreteinek és tömbindexek tárolására szolgál. Mérete architektúrától függ (például 32 vagy 64 bit). Garantálja, hogy a memória bármely objektumának maximális méretét tárolni tudja.

Fő különbségek:

  • size_t mindig előjel nélküli, és a méretekhez, indexekhez használják.
  • short, int, long lehetnek előjelessel vagy előjel nélküliek (ha az unsigned van megadva), és méretük platformfüggő.

A size_t használatának példája:

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

int main() {
    size_t length = 10;
    int array[10];

    for (size_t i = 0; i < length; i++) {
        array[i] = (int)i;
        printf("%d ", array[i]);
    }
    return 0;
}

Itt a size_t az array indexelésére szolgál, ami biztonságos és a C szabványoknak megfelelő.