Robí každý výraz v C majú hodnotu? Ako sa o volanie funkcie s neplatné ako výsledok? [duplicitné]

0

Otázka

Ako s textom.

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

Znamená to, že void je tiež typ hodnoty v C? Alebo ako by som mal pochopiť, že?

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

Najlepšiu odpoveď

1

A neplatné výraz nemá žiadnu hodnotu, a v skutočnosti sa nedá použiť. To je podrobne popísané v sekcii 6.3.2.2 z C norma:

V (neexistujúce) hodnota neplatné výraz (výraz, ktorý má druh void) nesmie byť používaný akýmkoľvek spôsobom, a implicitné alebo explicitné konverzií (okrem void) sa nesmú uplatňovať na takýto výraz. Ak výraz akýkoľvek iný typ vyhodnotené ako neplatné výraz, jeho hodnota alebo kód je vyradené. (Void výraz je vyhodnotený pre jeho vedľajšie účinky.)

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

Dobre, áno a nie. Nie, neplatné je typ, ktorý nemá žiadnu hodnotu. Rovnako ako názov napovedá, predstavuje absencia zadajte výraz. Ale áno, pretože zastupuje absencia typ znamená, že to má hodnotu. A táto hodnota je jednoducho predstavujú nič v jazyku, ktorý si vyžaduje schopnosť rozlišovať rozličné typy dát.

2021-11-24 03:41:15

Myslíš, že výrok "každý výraz v C má hodnotu" je správne?
Becavalier

V iných jazykoch

Táto stránka je v iných jazykoch

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