Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

void e int

Sei que o professor disse que não explicaria o uso do void para a função abertura, mas quando fui fazer no meu projeto, erroneamente usei o int e funcionou igualmente.

Seria uma questão para uso em outras situações? Existe um risco de quebrar meu código usando int?

4 respostas

Olá Paula, tudo certo?

void e int nesse caso são o que chamamos de retorno da função. Em geral, usamos retorno quando precisamos que a função nos devolva algo após a sua execução, e o retorno void é quando não precisamos que a função nos retorne nada. No caso de usar printf()'s, não estamos fazendo retorno nenhum, apenas escrevendo na tela. Um exemplo de função que retorna:

int somaDeUmEDois(){
    return 1 + 2;
}

note que agora eu utilizei uma palavra reservada da linguagem return, que serve justamente para retornar algum valor. Note que caso eu tente devolver algo que não seja um número inteiro, o código não irá compilar, pois eu especifiquei o tipo int. Analogamente, para o tipo de retorno void, não é permitido devolver nada.

Portanto, apesar de ainda funcionar o código com o comportamento esperado, o uso correto é do tipo de retorno void, e quando queremos receber algum valor calculado por uma função, usamos algum tipo de retorno. É preferível, portanto, usar o void nesse caso.

Mas não se preocupe, esses pontos vão ficar mais claros conforme você avançar nos cursos, e caso tenha mais alguma dúvida, pode contar com o fórum!

Um grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigada Arthur pelo retorno,

Fico com uma questão agora. No caso da função main usamos int.

Seria então necessario um retorno numérico para ele no final da função?

solução!

Nesse caso não Paula, na função main poderíamos usar o void também. No entanto, usamos o retorno int porque a linguagem C usa o retorno da função main para verificar se teve algum erro! Quando retornamos 0, significa que não houve erro nenhum durante a execução do programa, já o retorno 1 significa que houve erro! Mesmo assim, utilizando void ainda funciona, mas seu compilador provavelmente vai reclamar do tipo de retorno, embora o código rode!

Apenas ratificando o Arthur, não é a linguagem C que usa int para código de saída, isso é interpretado pelo sistema operacional para ele saber se a aplicação executou com ou sem erro. Programas em outras várias linguagens também fazem uso disso.

Aqui fala bem sobre isso.