Deo zbornika Uvod u programiranje kroz C

sizeof operator

Email Twitter LinkedIn Facebook Google

sizeof operator vraća veličinu svog operanda u bajtovima. U C-u se jedan bajt definira kao broj bitova potreban za pamćenje podatka tipa char. To je na većini računala osam bitova (jedan oktet).

Prosti podaci

Operand može biti izraz ili tip podatka. Na primjer, kod

#include <stdio.h>

int main()
{
    int i;
    float x;
    printf("Velicina tipa int = %d\n", sizeof(i));
    printf("Velicina tipa float = %d\n", sizeof(x));

    return 0;
}

bi na nekim sustavima ispisao

Velicina tipa int = 4
Velicina tipa float = 4

Isti efekt postižemo ako sizeof primijenimo na tip podatka:

#include <stdio.h>

int main()
{
    printf("Velicina tipa int = %d\n", sizeof(int));
    printf("Velicina tipa float = %d\n", sizeof(float));

    return 0;
}

Složeni podaci

Kod složenijih podataka dobivamo ukupan broj okteta koji podatak zauzima. Na primjer

#include <stdio.h>

int main()
{
    char tekst[]="Dalmacija";
    printf("Broj znakova u varijabli tekst =%d\n", sizeof(tekst));

    return 0;
}

daje

Broj znakova u varijabli tekst =10

Operator sizeof vraća cjelobrojnu vrijednost bez predznaka koja ovisi o implementaciji. Taj je tip definiran u datoteci zaglavlja <stddef.h> i zove se size_t.

Primer: veličina tipova podataka

Naredni primer je u C++:

#include <iostream>
using namespace std;

int main()
{
    cout << "char: " << sizeof(char) << " byte" << endl;
    cout << "int: " << sizeof(int) << " bytes" << endl;
    cout << "float: " << sizeof(float) << " bytes" << endl;
    cout << "double: " << sizeof(double) << " bytes" << endl;

    return 0;
}

Izvor: M. Jurak, Programski jezik C, predavanja 2003/04.