Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Typ pusty - Wikipedia, wolna encyklopedia

Typ pusty

Z Wikipedii

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.

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com