Como titulado.
void foo() {}
int main(void) {
foo(); // what is the value of this expression?
}
Qué significa que void
es también un tipo de valor de C? O ¿cómo debo entender eso?
Como titulado.
void foo() {}
int main(void) {
foo(); // what is the value of this expression?
}
Qué significa que void
es también un tipo de valor de C? O ¿cómo debo entender eso?
Un vacío de expresión no tiene ningún valor, y de hecho, no puede ser utilizado. Esto se describe en detalle en la sección 6.3.2.2 de la C estándar:
La (inexistente) el valor de una nula expresión (una expresión que se ha tipo de
void
) no debe ser utilizado de ninguna manera, y de forma implícita o las conversiones explícitas (excepto paravoid
) no se aplicará a dicha expresión. Si una expresión de ningún otro tipo evaluado como un vacío expresión, su valor o designador es descartado. (Un vacío la expresión es evaluada por su los efectos secundarios.)
Bueno, sí y no. No, el vacío es un tipo que no tiene ningún valor. Como el nombre lo sugiere, es el que representa la ausencia de tipo en una expresión. Pero sí, debido a que representa la ausencia de un tipo que implica que tiene valor. Y ese valor es simplemente representan nada en un idioma que requiere de la capacidad para distinguir los diferentes tipos de datos.