sizeof operatora (C)
sizeof Operator podaje ilość pamięci, w bajtach, wymaganych do przechowywania obiektu typu operandu.Ten operator pozwala uniknąć, określając rozmiary danych zależnych od komputera w programach.
sizeof unary-expression
sizeof ( type-name )
Uwagi
Argument jest albo identyfikator, który jest wyrażenie jednoargumentowe, lub wyrażenie typu rzutowania (to znaczy specyfikatora typu w nawiasach).Wyrażenie jednoargumentowe nie może reprezentować obiektu pole bitowe, niekompletnemu typowi lub w opisie funkcji.Wynik jest niepodpisany wartość stałej całkowitej.Standardowy nagłówek STDDEF.H definiuje tego typu jako size_t.
Po zastosowaniu sizeof operatora na identyfikator tablicy, wynik jest rozmiar całej tablicy, a nie rozmiar wskaźnika, reprezentowany przez identyfikator tablicy.
Po zastosowaniu sizeof operator struktury lub Unii wpisz nazwę lub identyfikator struktura lub typ Unii, wynikiem jest liczba bajtów w strukturze lub Unii, w tym dopełnienia wewnętrznego i na końcu.Rozmiar ten może obejmować dopełnienia wewnętrznego i na końcu, używane do wyrównywania członkowie struktury lub Unii w granicach pamięci.W ten sposób wynik może nie odpowiadają wielkości obliczona przez zsumowanie wymagania poszczególnych członków w zakresie magazynowania.
Jeśli tablica niesortowana według wielkości jest ostatni element struktury, sizeof operator zwraca rozmiar struktury bez tablicy.
buffer = calloc(100, sizeof (int) );
W tym przykładzie użyto sizeof operatora do przekazania rozmiar int, który zmienia się między maszyny, jako argument do funkcji run-time, o nazwie calloc.Wartość zwracana przez funkcję jest przechowywane w buffer.
static char *strings[] ={
"this is string one",
"this is string two",
"this is string three",
};
const int string_no = ( sizeof strings ) / ( sizeof strings[0] );
W tym przykładzie strings jest tablicą wskaźniki do char.Liczbę wskaźników jest liczba elementów w tablicy, ale nie został określony.Łatwo określić liczbę wskaźników za pomocą sizeof operatora, aby obliczyć liczbę elementów w tablicy.Const wartość całkowitą string_no jest inicjowany do tego numeru.Ponieważ jest const wartości, string_no nie może być modyfikowana.