Typ pusty - Google

Typ pusty

Z Wikipedii

Skocz do: nawigacji, szukaj

Typ pusty to typ zawierający tylko jedną wartość. Wprowadzenie takiego typu do systemu typów języka programowania umożliwia pewne rodzaje uogólnień - nie trzeba rozróżniać funkcji, które zwracają wartość, od tych, które jej nie zwracają (czyli zwracają wartość typu pustego), oraz funkcji, które pobierają jakiś argument, od tych, które tego nie robią.

Typ pusty stosowany jest głównie do:

  • Wskazania, że funkcja nie zwraca wyniku (jÄ™zyki C, C++).
  • Wskazania, że funkcja nie pobiera żadnych argumentów (jÄ™zyk C)
  • Definiowania wskaźników na dane nieokreÅ›lonego typu (jÄ™zyki C i C++).

Spis treści

[edytuj] Typy puste w językach programowania

[edytuj] Przykłady

[edytuj] Definiowanie funkcji niezwracajÄ…cej wyniku

void wypisz_liczbe(int liczba)
{
   printf("%d\n", liczba);
}

W przykładzie tym (napisanym w języku C lub C++) słowo kluczowe void wskazuje, że funkcja wypisz_liczbe nie zwraca wartości.

[edytuj] Definiowanie funkcji bezargumentowych

int powitanie(void)
{
   printf("Witaj!\n");
   return 0;
}

W przykładzie tym (napisanym w języku C) słowo kluczowe void wskazuje, że funkcja powitanie nie pobiera żadnych argumentów.

[edytuj] Definiowanie wskaźników do danych nieokreślonego typu

int n = 10;
void* p = &n;

W przykładzie tym zdefiniowano wskaźnik p i przypisano mu adres zmiennej całkowiej n. Ponieważ kompilator nie ma żadnej informacji o typie danych wskazywanych przez p, nie wolno bezpośrednio wyłuskiwać danych wskazywanych przez p. Aby uzyskać dostęp do tych danych, należy jawnie wskazać ich typ:

int* pn = (int*) p;
printf("n = %d\n", *pn);   

[edytuj] Przykład zaawansowany (qsort)

W języku C występuje funkcja sortujaca qsort o następującym prototypie:

void 
qsort (void *array, size_t count, size_t size, int (*compare_fun) (const void *a, const void *b))
  • Ponieważ funkcja ta nie musi zwracać wyniku, typem jej wartoÅ›ci jest void
  • Ponieważ funkcji tej chcielibyÅ›my móc używać do sortowania tablic danych dowolnego, z góry nieznanego typu, dostÄ™p do nich zapewniany jest przez wskaźnik array typu void*.
  • Czwarty argument funkcji qsort sam jest funkcjÄ… i sÅ‚uży do ustalania kolejnoÅ›ci sortowanych elementów. Typem obu argumentów tej funkcji też jest void*, dziÄ™ki czemu może ona zostać użyta do sortowania tablic dowolnego typu

[edytuj] Uwagi

  • Co prawda w jÄ™zyku C++ można posÅ‚ugiwać siÄ™ wskaźnikami typu void*, jednak w praktyce z możliwoÅ›ci tej korzysta siÄ™ tylko w kodzie współpracujÄ…cym z bibliotekami napisanymi w C. W C++ istniejÄ… bowiem bezpieczne mechanizmy praktycznie eliminujÄ…ce potrzebÄ™ posÅ‚ugiwania siÄ™ typem void*: polimorfizm i typy parametryczne.
  • W C++ do definiowania funkcji bezargumentowych nie używa siÄ™ sÅ‚owa kluczowego void, lecz po prostu pozostawia siÄ™ pustÄ… listÄ™ argumentów.
 int powitanie()
 {
   printf("Witaj!\n");
   return 0;
 }

Ta sama konstrukcja w języku C interpretowana jest jako definicja funkcji o nieokreślonej (dowolnej) liczbie argumentów.


IPN radzi, jak uczyć historii najnowszej
O historii oczami bezpieki, o symbolice flagi narodowej i o patriotyzmie pokoleniowym była m.in. mowa podczas czwartkowych warsztatów, odbywających się w ramach "II Polonijnych spotkań z historią najnowszą".
WHO: minimalne znaczenie jakości powietrza dla sportowców
Zdaniem Światowej Organizacji Zdrowia (WHO) zanieczyszczenie powietrza w Pekinie jedynie minimalnie może wpłynąć na zdrowie sportowców, uczestniczących w olimpiadzie - może jednak zadecydować o wynikach zmagań sportowych.
Powstała mapa spornych terytoriów Arktyki
Brytyjscy naukowcy sporzÄ…dzili mapÄ™ Arktyki przedstawiajÄ…cÄ… potencjalnie sporne terytoria.
Międzynarodowe Sprzątanie Bałtyku
16 sierpnia w krajach nadbałtyckich odbędzie się Międzynarodowe Sprzątanie Bałtyku. W czwartek w Warszawie inicjatorka akcji, Mira Stanisławska-Meysztowicz pokazywała nad Wisłą, co można zrobić dla poprawy czystości morza.
Archeolodzy odkryli pierwszy teatr szekspirowski
Archeolodzy z londyńskiego Museum of London ogłosili, że prawdopodobnie znaleźli pozostałości jednego z pierwszych teatrów w mieście. Niewykluczone, że właśnie w nim William Szekspir po raz pierwszy wystawiał swoje sztuki.
Linki: Strona g³ówna