W C void
jest używany do wielu niepowiązanych rzeczy. W zależności od tego, do czego jest używany, może to oznaczać typ jednostki, typ pusty lub coś innego.
Gdy void
jest używany samodzielnie (w przeciwieństwie do void*
wskaźnika do pustki), jest to typ jednostki, tj. Typ z jedną wartością. void
Mówi się, że funkcje, które zwracają , „nic nie zwracają”, ale tak naprawdę oznacza to, że nie zwracają żadnych informacji. Zwracają bitów informacji, co oznacza, że zwracają wartość typu, który zawiera odrębne wartości, tj. Typ jednostki.020=1
To nie jest pusty typ: funkcja zwracająca pusty typ nie może zwrócić wartości, ponieważ nie ma żadnej wartości tego typu. Funkcja, której typ zwracany jest pusty, może zapętlać na zawsze, przerywać program lub zgłaszać wyjątek ( longjmp
) (lub w inny sposób zapewniać brak powrotu, np. Poprzez przeniesienie kontroli do innego wątku lub procesu przy użyciu funkcjonalności wykraczającej poza standardowy C). Aby utrzymać zamieszanie, w C zwykle używa się void
zamiast pustego typu (C nie ma pustego typu).
void
Ten wymaga bitów przechowywania. Ponieważ C nalega, aby każdy obiekt zajmował całą niezerową liczbę bajtów pamięci, zabronione jest tworzenie obiektu typu i istnieje specjalna składnia zwracająca wartość ( instrukcja z pominiętą wartością). Nie ma składni, która daje wartość typu , ale ta wartość jest dostępna za każdym razem, gdy zwraca funkcję, której typ zwracany jest .0void
void
return
void
void
C nie ma typu dolnego w tym sensie, że dopuszcza dowolny możliwy typ. Nawet niekompletne typy określają ogólny charakter jego wartości, np. Wskaźniki, struktury, związki lub funkcje. Ale void*
jest wskaźnikiem do każdego typu non-funkcyjny: to najmniejszy element algebry typów obiektów wskaźnik, czyli jest to dolna typ obiektu wskaźnik. W przeciwieństwie do ogólnego przypadku T*
, gdzie T
jest jakiś zakaz typ void, void*
nie jest typem wskaźników do wartości typu void
, ale rodzaj wskaźników do wartości nieokreślonego typu.