Fiecare expresie în C au o valoare? Cât despre apelul funcției cu golul ca un rezultat? [duplicat]

0

Problema

Ca intitulat.

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

Înseamnă că void este, de asemenea, un tip de valoare în C? Sau cum să înțeleg asta?

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

Cel mai bun răspuns

1

Un gol de exprimare nu are nici o valoare, și, de fapt, nu poate fi folosit. Acest lucru este descris în detaliu în secțiunea 6.3.2.2 de C standard:

A (inexistente) valoare de un gol exprimare (o expresie care are tip void) nu vor fi folosite, în orice mod, și implicit sau conversii explicite (cu excepția void) nu se aplică o astfel de expresie. Dacă o expresie de orice alt tip este evaluată ca un gol exprimare, de valoarea acesteia sau indicativul este aruncată. (Un gol expresia este evaluată pentru efecte secundare.)

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

Ei bine, da și nu. Nu, void este un tip care nu are nici o valoare. Așa cum sugerează și numele, reprezintă absența de tip într-o expresie. Dar da, pentru că reprezintă absența unui tip presupune că are valoare. Și această valoare este pur și simplu de a reprezenta nimic într-o limbă care necesită capacitatea de a distinge diferite tipuri de date.

2021-11-24 03:41:15

Vrei să spui că afirmația "fiecare expresie în C are o valoare" este corect?
Becavalier

În alte limbi

Această pagină este în alte limbi

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