Obtendo “tipos conflitantes de função” em C, por que?

Obtendo “tipos conflitantes de função” em C, por que?
Toda linguagem de programação possui alguns tipos de dados predefinidos que definem o tipo de dados que podem ser fornecidos em variáveis. Em C, por exemplo, os tipos de dados incluem números inteiros, carros alegóricos, duplas, caracteres e ponteiros. Variáveis, matrizes e funções podem ser definidas usando esses tipos de dados, entre outras coisas. Portanto, o tipo de dados de uma função representa o tipo de dados que a função retornaria.

Na linguagem de programação C, um comum erro mensagem que os desenvolvedores encontram é o “Tipos conflitantes para função” erro. Esse erro A mensagem surge quando o compilador detecta dois tipos diferentes de dados associados a uma única função. Este artigo discute o que causa isso erro e como abordar.

Erro de “tipos conflitantes para função”

Quando declaramos uma função em C, ela deve corresponder ao tipo de definição de função. Por exemplo, se definirmos uma função para retornar um número inteiro, a declaração também deve definir a função de retornar um número inteiro. Se os tipos de definição e a declaração não corresponderem, o “Tipos conflitantes para função” erro é jogado pelo compilador C.

Razões pelas quais esse erro ocorre

Existem várias razões pelas quais Tipos conflitantes para funções pode acontecer.

1: Tipos de dados incompatíveis

A primeira razão é que os tipos de dados podem ser incompatíveis entre a chamada de função e a definição de função. Por exemplo, se definirmos uma função para retornar um flutuador e tentar chamar uma função com a expectativa de um número inteiro, o compilador detectará um conflito nos tipos.

2: Protótipo da função definido incorretamente

Outro motivo para o conflito é que o protótipo da função não é definido ou declarado corretamente. Os tipos de parâmetros que uma função recebe e os tipos de valores retornados são declarados em um protótipo de função. Se o protótipo não corresponder à definição, o erro seria jogado.

3: Erro de digitação

finalmente, o Erro de “tipos conflitantes para função” A mensagem também pode ocorrer devido a um simples erro de digitação, como um nome de função com ortografia, um semicolon ausente ou um parêntese de fechamento ausente. Portanto, é importante verificar erros de sintaxe quando conseguirmos isso erro mensagem.

Aqui está o código de amostra que gera o “Tipo conflitante para função” erro em c.

#incluir
Média de flutuação (int, int);
int main ()

printf ("A média é: %f \ n", média (27.32,14.53));
retornar 0;

Média de flutuação (Float X, Float Y)

retornar ((x+y)/2);

No código acima, o tipo de argumentos na declaração de função 'média ()' é int, enquanto no momento da definição da média da função, estamos usando os tipos de dados flutuando para argumentos de função. Como os tipos de parâmetros de função são diferentes para declarar e definir a mesma função, obtemos o erro “Tipos conflitantes para 'média'".

Saída

Código corrigido

Para corrigir o erro, precisamos verificar se os tipos de argumento para declarar e definir as funções são iguais.

#incluir
Média de flutuação (flutuação, flutuação);
int main ()

printf ("A média é: %f \ n", média (27.32,14.53));
retornar 0;

Média de flutuação (Float X, Float Y)

retornar ((x+y)/2);

No código acima, estamos usando os mesmos tipos de parâmetros para ambos, a definição e a declaração da função. Portanto, isso nos dá a saída, eu.e., a média de ambos os valores.

Saída

Conclusão

“Tipos conflitantes para função” A mensagem de erro em C aparece quando há uma incompatibilidade entre o protótipo da função e sua definição, bem como quando o tipo de valor retornado pela função não é consistente entre os dois. Para resolver isso erro, Devemos garantir que o protótipo da função e sua definição sejam consistentes em termos de número, ordem e tipos de argumentos aceitos e o tipo de valor retornado. Também devemos verificar a sintaxe simples erros Quando encontramos isso erro mensagem para evitar frustração desnecessária.