avertissement: déclaration implicite de la fonction
Je suis à la programmation en C et mon compilateur gcc me donne l'avertissement suivant dans mon appel de fonction dans mySedondFile.c:
implicit declaration of function 'func'
Le prototype de fonction est déclarée dans myfile.h
comme:
void func(char*);
Définition de la fonction est dans myfile.c
void func(char*x);
mySecondFile.c
contient:
#include "myfile.h"
func("Hello");
Qui me manque, pourquoi ce serait à se plaindre.
- Pourriez-vous montrer le contenu de ces fichiers (les réduire à un minimum le contenu qui sont encore reproduit l'erreur)? Le diable est dans les détails pour quelque chose comme ça.
- Essayez de compiler avec
-Wall -Wextra -pedantic
et voir s'il détecte quelque chose d'autre.
Vous devez vous connecter pour publier un commentaire.
Que l'erreur est émise car
func
n'a pas été déclarée à l'endroit où vous l'appelez.Il semble que votre fichiers d'en-tête ne sont pas tout à fait comme vous le décrivez. Peut-être il ya certains de code conditionnel. Peut-être que vous avez un en-tête de la garde qui n'est pas le droit de travailler. Une autre possibilité est que vous avez reçu une lettre cas d'erreur et déclaré la fonction
Func
mais l'a appelé avecfunc
. Très difficile à dire sans voir les fichiers réels, mais vous devez regarder pour une raisonfunc
n'est pas déclarée dans lemySecondFile.c
de l'unité de traduction.Pour illustrer cela d'un peu plus clairement, le code suivant:
résultats de cette mise en garde:
qui est exactement comme vous le rapport.
Selon votre description, votre code inclut un fichier d'en-tête qui déclare
func
. Le compilateur supplie de différer avec vous et il ne vous reste plus qu'à savoir pourquoifunc
n'est pas déclaré.