J'écris un projet d'université C et suis tombé sur un comportement de compilateur que je ne comprends pas.Le compilateur est capable de trouver la fonction sans correspondance. Fichier h est mis à jour?
Dans ce fichier http://code.google.com/p/openu-bsc-maximveksler/source/browse/trunk/20465/semester/tasks/maman14/alpha/maman14/assembler/phaseOne.c?r=112 J'ai ajouté un appel à la fonction freeAsmInstruction(). Cette fonction est définie dans le fichier lineParser.c, mais je n'ai pas mis à jour le fichier d'en-tête lineParser.h correspondant pour inclure cette déclaration de fonction.
Pourquoi ce code compile-t-il? Je m'attendrais à ce que gcc échoue à compiler phaseOne.c jusqu'à ce que lineParser.h correct soit mis à jour avec la déclaration de freeAsmInstruction().
J'apprécierais une explication.
Merci, Maxim
Merci pour la réponse. –
Par exemple, j'utilise généralement -pedantic -Wall -Wextra -Wwrite-strings -Wconversion -Werror, puis supprime les indicateurs d'avertissement si nécessaire. –
@Steve Ce serait un grand avantage pour l'humanité si GNU tournait au moins -Wall et -pedantic par défaut, et que vous deviez utiliser des options pour les désactiver. Mais je suppose qu'ils ont peur de briser les océans du code de merde là-bas. –