Obtenir des «types conflictuels pour la fonction» en C, pourquoi?

Obtenir des «types conflictuels pour la fonction» en C, pourquoi?
Chaque langage de programmation a des types de données prédéfinis qui définissent le type de données qui peuvent être fournies en variables. En C, par exemple, les types de données incluent des entiers, des flotteurs, des doubles, des caractères et des pointeurs. Les variables, les tableaux et les fonctions peuvent tous être définis à l'aide de ces types de données, entre autres. Par conséquent, le type de données d'une fonction représente le type de données que la fonction renvoie.

En langage de programmation C, un commun erreur Message que les développeurs rencontrent est le «Types conflictuels pour la fonction» erreur. Ce erreur Le message survient lorsque le compilateur détecte deux types de données différents associées à une seule fonction. Cet article discute de ce qui cause cela erreur Et comment y remédier.

Erreur «Types contradictoires pour la fonction»

Lorsque nous déclarons une fonction en C, elle doit correspondre au type de définition de la fonction. Par exemple, si nous définissons une fonction pour renvoyer un entier, la déclaration doit également définir la fonction pour renvoyer un entier. Si les types de définition et la déclaration ne correspondent pas, le «Types conflictuels pour la fonction» erreur est lancé par le compilateur C.

Raisons pour lesquelles cette erreur se produit

Il y a plusieurs raisons pour lesquelles Types contradictoires pour les fonctions peut arriver.

1: Types de données incompatibles

La première raison est que les types de données peuvent être incompatibles entre l'appel de fonction et la définition de la fonction. Par exemple, si nous définissons une fonction pour retourner un flotteur et essayons ensuite d'appeler une fonction dans l'attente d'un entier, le compilateur détectera un conflit dans les types.

2: Prototype fonction a défini mal

Une autre raison du conflit est que le prototype de fonction n'est pas défini ou déclaré correctement. Les types de paramètres reçoivent une fonction et les types de valeurs qu'il renvoie sont déclarés dans un prototype de fonction. Si le prototype ne correspond pas à la définition, la erreur serait lancé.

3: Erreur de frappe

Finalement, le Erreur «Types contradictoires pour la fonction» Un message peut également se produire en raison d'une simple erreur de frappe, comme un nom de fonction mal orthographié, un point-virgule manquant ou une parenthèse de clôture manquante. Par conséquent, il est important de vérifier les erreurs de syntaxe lorsque nous obtenons ceci erreur message.

Voici l'exemple de code qui génère le «Type conflictuel pour la fonction» Erreur en C.

#inclure
moyenne flottante (int, int);
int main()

printf ("La moyenne est:% f \ n", moyenne (27.32,14.53));
retour 0;

Flotter la moyenne (flotteur x, flotteur y)

return ((x + y) / 2);

Dans le code ci-dessus, le type d'arguments dans la déclaration de fonction 'moyenne ()' 'est int, tandis qu'au moment de définir la moyenne de la fonction, nous utilisons les types de données flottants pour les arguments de fonction. Comme les types de paramètres de fonction sont différents pour déclarer et définir la même fonction, nous obtenons le erreur «Types contradictoires pour« moyenne »».

Sortir

Code corrigé

Pour corriger le erreur, Nous devons vérifier que les types d'arguments dans la déclaration et la définition des fonctions sont les mêmes.

#inclure
Float moyen (flotteur, flotteur);
int main()

printf ("La moyenne est:% f \ n", moyenne (27.32,14.53));
retour 0;

Flotter la moyenne (flotteur x, flotteur y)

return ((x + y) / 2);

Dans le code ci-dessus, nous utilisons les mêmes types de paramètres pour les deux, la définition et la déclaration de la fonction. Par conséquent, cela nous donne la sortie, je.e., la moyenne des deux valeurs.

Sortir

Conclusion

«Types conflictuels pour la fonction» Le message d'erreur en C apparaît lorsqu'il existe un décalage entre le prototype de fonction et sa définition, ainsi que lorsque le type de valeur renvoyé par la fonction n'est pas cohérent entre les deux. Pour résoudre ceci erreur, Nous devons nous assurer que le prototype de fonction et sa définition sont cohérents en termes de nombre, d'ordre et de types d'arguments acceptés et du type de valeur renvoyée. Nous devons également vérifier la syntaxe simple les erreurs Quand nous rencontrons ceci erreur Message pour éviter une frustration inutile.