Cada expressão em C temos um valor? Como sobre a chamada de função com o vazio como um resultado? [duplicado]

0

Pergunta

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?

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

Melhor resposta

1

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 voidnão devem ser usados em qualquer forma, e implícito ou conversões explícitas (exceto para voidnã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.)

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

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.

2021-11-24 03:41:15

Você quer dizer que a afirmação de que "toda expressão em C tem um valor" está correto?
Becavalier

Em outros idiomas

Esta página está em outros idiomas

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