Comme intitulé.
void foo() {}
int main(void) {
foo(); // what is the value of this expression?
}
Veut-il dire qu' void
est également un type de valeur dans C? Ou comment dois-je comprendre cela?
Comme intitulé.
void foo() {}
int main(void) {
foo(); // what is the value of this expression?
}
Veut-il dire qu' void
est également un type de valeur dans C? Ou comment dois-je comprendre cela?
Un vide d'expression n'a pas de valeur, et en fait ne peut pas être utilisé. Ceci est décrit en détail dans la section 6.3.2.2 de la norme C:
L' (inexistante) de la valeur d'un vide d'expression (une expression qui a type
void
) ne doit pas être utilisé de quelque façon, et de manière implicite ou les conversions explicites (à l'exception devoid
) ne doit pas être appliqué à une telle expression. Si une expression de n'importe quel autre type est évalué comme un vide expression, sa valeur ou sa désignation est jeté. (Un vide l'expression est évaluée pour sa des effets secondaires.)
Eh bien, oui et non. Non, le vide est un type qui n'a aucune valeur. Tout comme le nom l'indique, il représente l'absence de type dans une expression. Mais oui, parce que représentant de l'absence d'un type qui implique qu'il a de la valeur. Et que la valeur est simplement ne représentent rien dans une langue qui exige la capacité de distinguer les différents types de données.