Czy każde wyrażenie w C wartość? Co powiesz na połączenie funkcji void w wyniku? [duplikat]

0

Pytanie

Zgodnie z oczekiwaniami.

void foo() {}
int main(void) {
  foo();  // what is the value of this expression?
}

Czy to oznacza, że void jest również typem wartości w C? Lub jak mam to rozumieć?

c
2021-11-24 03:26:57
2

Najlepsza odpowiedź

1

Wyrażenie void nie ma znaczenia i właściwie nie może być używany. Jest to szczegółowo opisane w dziale 6.3.2.2 standardu C:

(Nieistniejące) wartość wyrażenia void (wyrażenie, mająca typ void) nie powinny być wykorzystywane w jakikolwiek sposób, a także niejawne lub konwersje jawne (za wyjątkiem void) nie powinno być stosowane do do takiej wypowiedzi. Jeśli wyrażenie innego typu szacuje się jako puste wyrażenie, jego wartość lub oznaczenie wyrzucić. ( Wyrażenie void szacuje się na przedmiot jego skutków ubocznych.)

2021-11-24 03:40:26
-1

No i tak, i nie. Nie, void-to typ, który nie ma znaczenia. Jak sama nazwa wskazuje, oznacza to brak typu w wyrażeniu. Ale tak, dlatego, że występ na brak typu oznacza, że ma wartość. I to jest wartość polega na tym, aby po prostu nic nie stanowić w języku, który wymaga zdolności odróżnić różne typy danych.

2021-11-24 03:41:15

Masz na myśli, że stwierdzenie "każde wyrażenie w C ma wartość" prawda?
Becavalier

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................