Ir ao conteúdo
  • Cadastre-se

Como criar uma função em C que receba outra função como parâmetro?


mateuslucas

Posts recomendados

Olá amigos, eu de novo com uma nova dúvida..

Gostaria de saber como crio uma função em C que receba uma outra função como parâmetro, sendo que essa outra função retorna void de forma que não dê para atribuí-la a uma variável...

Alguém sabe como faço isso?

Isso ta empacando aqui =/

Abraços, e obrigado novamente

Link para o comentário
Compartilhar em outros sites

Exemplo simples e funcional:


#include <stdio.h>

typedef void (funcao)(int argumento);

void executafuncao( funcao *func, int arg )
{
if( func != NULL )
{
func(arg);
}
}

void funcao1( int argumento )
{
printf("funcao1: %i\n", argumento);
}

void funcao2( int argumento )
{
printf("funcao2: %i\n", argumento);
}

int main(void)
{
executafuncao( funcao1, 3 );
executafuncao( funcao2, 4 );
}

O typedef faz com que o compilador entenda que 'funcao' é uma declaração de uma função que recebe um int como argumento e que não retorna nada.

A função 'executafuncao' recebe como argumento uma 'funcao' e um inteiro, e faz como tal função seja executada, usando o argumento passado.

As funções 'funcao1' e 'funcao2' devem respeitar a regra de não retornar nada e receber um int como argumento.

Só para constar, a saída para este programa é:


funcao1: 3
funcao2: 4

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!