Como intitulada.
void foo() {}
int main(void) {
foo(); // what is the value of this expression?
}
Não significa que void
também é um tipo de valor de C? Ou como devo entender isso?
Como intitulada.
void foo() {}
int main(void) {
foo(); // what is the value of this expression?
}
Não significa que void
também é um tipo de valor de C? Ou como devo entender isso?
Um vazio de expressão não tem valor, e na verdade não pode ser usado. Isto é descrito em detalhe na secção 6.3.2.2 do C padrão:
A (inexistente) o valor de um void expression (expressão que tem tipo
void
não devem ser usados em qualquer forma, e implícito ou conversões explícitas (exceto paravoid
não deve ser aplicada a tal expressão. Se uma expressão de qualquer outro tipo é avaliada como um vazio expressão, seu valor ou designador é descartado. (Um vazio a expressão é avaliada por sua efeitos colaterais.)
Bem, sim e não. Não, void é um tipo que não tem nenhum valor. Tal como o nome sugere, ele representa a ausência do tipo em uma expressão. Mas sim, porque representa a ausência de um tipo implica que ele tem valor. E que valor é simplesmente representam nada em uma linguagem que requer a capacidade de distinguir diferentes tipos de dados.