Considerem, a duas versões do mesmo programa. Ambas funcionam. Foram postas apenas para ilustrar a duvida, e facilitar a resposta.
Versão 1:
#include <stdio.h>
#include <stdlib.h>
void Escrevenum(int (*func)(int*, int*, int*) );
int Textonum(int* num1, int* num2, int* num3 );
int main ()
{
int (*p)(int*, int*, int*); /* Cria ponteiro para a função e define seu
parametro como tipo char*/
p = Textonum; /* Atribui a função texto ao ponteiro p*/
Escrevenum( p );
/* Passa ponteiro para a função como referencia*/
system ("pause");
return 0;
}
void Escrevenum( int (*func)(int*, int*, int*) )
{
int a=1,b=2,c=3;
func(&a, &b, &c);
/* Executa função que foi passada como referencia */
return;
}
int Textonum(int* num1, int* num2, int* num3 )
{
printf("%d %d %d\n", *num1, *num2, *num3);
return (0);
}
Versão 2:
#include <stdlib.h>
void Escrevenum(int (*func)(int, int, int) );
int Textonum(int num1, int num2, int num3 );
int main ()
{
int (*p)(int, int, int); /* Cria ponteiro para a função e define seu
parametro como tipo char*/
p = Textonum; /* Atribui a função texto ao ponteiro p*/
Escrevenum( p );
/* Passa ponteiro para a função como referencia*/
system ("pause");
return 0;
}
void Escrevenum( int (*func)(int, int, int) )
{
func(1, 2, 3);
/* Executa função que foi passada como referencia */
return;
}
int Textonum(int num1, int num2, int num3 )
{
printf("%d %d %d\n", num1, num2, num3);
return (0);
}
Como dito acima, ambas funcionam, entretanto, se diz, que a versão mais correta, é a segunda, isto porque o correto, seria usar ponteiros com parâmetros, quando se usa strings ou tipo char, e não com tipos numéricos. Gostaria de saber o porquê.
Pergunta
Castro
:D
Considerem, a duas versões do mesmo programa. Ambas funcionam. Foram postas apenas para ilustrar a duvida, e facilitar a resposta.
Versão 1:
Versão 2:Como dito acima, ambas funcionam, entretanto, se diz, que a versão mais correta, é a segunda, isto porque o correto, seria usar ponteiros com parâmetros, quando se usa strings ou tipo char, e não com tipos numéricos. Gostaria de saber o porquê.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.