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?
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?
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í (okremvoid
) 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.)
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.