Retornar vários valores de uma função em C

Google Translate Icon

Este post discutirá como retornar vários valores de uma função em C.

Sabemos que a sintaxe das funções em C não nos permite retornar vários valores. Mas os programadores geralmente precisam retornar vários valores de uma função. Felizmente, existem várias soluções alternativas em C para retornar vários valores.

1. Ponteiros em C

Podemos usar ponteiros em C para retornar mais de um valor da função passando ponteiros como parâmetros de função e usá-los para definir vários valores, que terão visibilidade na função chamadora.

Download  Executar código

Resultado:

a = 10, b = 20, c = A

2. Estruturas em C

Também podemos usar estruturas em C para retornar mais de um valor da função. Sabemos que uma estrutura é um tipo de dados definido pelo usuário em C que pode conter vários tipos de dados do mesmo tipo ou de tipos diferentes.

A ideia é criar um struct contendo todos os tipos de dados necessários como seus membros e retornar esse struct de nossa função. Em seguida, podemos recuperar os valores desejados da estrutura dentro de nossa função de chamada.

Download  Executar código

Resultado:

a = 10, b = 20, c = A

3. Array

Vimos como retornar valores de diferentes tipos de dados da função usando ponteiros e struts. Agora, se todos os valores forem do mesmo tipo de dados, podemos encapsular os valores em um array e retornar esse array, conforme mostrado abaixo:

Download  Executar código

Resultado:

a = 10, b = 20, c = 30

 
Não devemos usar essa abordagem, pois as informações da variável não são passadas para a função do chamador. Por exemplo, estamos usando o índice do array para recuperar os valores de nossas variáveis. Além disso, observe que temos que alocar o array dinamicamente em um heap. Se usarmos o array estático, ele deixará de existir quando sairmos da função, e acessá-lo dentro da função chamadora resultará em um comportamento indefinido.

Isso é tudo sobre como retornar vários valores de uma implementação de função em C.

 
Veja também:

Retornar vários valores de funções em C++

Retornar vários valores de um método em Java

Avalie esta postagem

Classificação média 4.69/5. Contagem de votos: 52

Sem votos até agora! Seja o primeiro a avaliar este post.

Lamentamos que este post não tenha sido útil para você!

Diga-nos como podemos melhorar este post?




Obrigado por ler.

Por favor, use nosso compilador online para postar código em comentários usando C, C++, Java, Python, JavaScript, C#, PHP e muitas outras linguagens de programação populares.

Como nós? Indique-nos aos seus amigos e ajude-nos a crescer. Codificação feliz :)



Se inscrever
Notificar de
guest
5 Comentários
Mais votados
O mais novo Mais antigo
Comentários em linha
Ver todos os comentários
NÃO siga este link ou você será banido do site!