Ir ao conteúdo

Posts recomendados

Postado
55 minutos atrás, Simon Viegas disse:

Resumindo:

* para utilizar um retorno da função, bastaria configurar qual retorno quer utilizar; OK

* ali no if estaria verificando se é uma função ou não, ou seja: se o ponteiro aponta para uma função ou para null (ou algo do tipo)... e não querendo dizer que quer utilizar o valor de retorno da suposta função em si

 

no caso dos ponteiros você pode sempre passar 0 ou NULL por isso no código da função que recebe esses ponteiros de função é sábio testar se o ponteiro não é 0. Em muitos casos basta isso. Às vezes você tem uma função de entrada que é mesmo opcional, mas às vezes veio mesmo errado e se você escrever f() seu programa vai cancelar

  • Curtir 1
Postado

@Beginner Developer Não porque tipo genérico (void como tipo) não existe.

 

Tradução do tipo é vazio; Declarar uma variável é próxima da ação de retorno então podemos retorna o vazio somente na qualidade de sinal de que não tem retorno ou retorno nada isso é aceitável.

 

Atribuir o retorno qualquer outra operação de void não é aceitável. Void tem pouco haver com o Void* que é outra coisa.

 
 

 

Postado
1 hora atrás, Simon Viegas disse:

Ficou então faltando a outra parte da dúvida:

 

 

Algo como:


  // Nesse caso eu estaria verificando o retorno da função ou comparando se a mesma é igual a NULL?
  if (!(<a função1 é uma função?>) || !(<a função2 é uma função?>) 
      <faço outra coisa> //ex.: "imprimir um texto na tela dizendo que não chegou uma das função"
  else
      <faço alguma coisa utilizando as funções>

 

Resumindo:

* para utilizar um retorno da função, bastaria configurar qual retorno quer utilizar; OK

* ali no if estaria verificando se é uma função ou não, ou seja: se o ponteiro aponta para uma função ou para null (ou algo do tipo)... e não querendo dizer que quer utilizar o valor de retorno da suposta função em si.

 

 

No código anterior o programa quebraria se fosse passado NULL como parametro.

 

Sim, é possível, segue uma pequena alteração no código.

 

...

void display_if(int* arr, size_t size, bool (where)(int))
{
    for (size_t i = 0; i < size; i++)
        if (where == NULL || where(arr[i]))
            printf("%d, ", arr[i]);
}

...


    printf("Todos: ");
    display_if(vet, VET_SIZE, NULL);
    printf("\b\b \n");

...

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!