J'aimerais comprendre en quoi est ce utile de mettre en les prototypes des fonctions de notre bibliothèques personelles dans une .h.
En effet quand j'utilise gcc *.c pour compiler tous mes fichiers c du repertoire courant, bah tout marche... Quel est le plus que je gagne en ayand un header personel ?
J'ai remarqué dans certains tutos vidéos que cette pratique était courante. J'aimerais comprendre bien le concept d'en-tête en c en dehors des en-tête systeme classique.
Quand tu crées une bibliothèque et que tu l'as compilée. Tu obtiens un fichier de bibliothèque .a ou .lib que tu vas ensuite utiliser ou fournir à des tiers. Si tu ne fournis pas les prototype comment ces tiers ou le compilateur va faire pour utiliser les fonctions de ta bibliothèque ?
En effet quand j'utilise gcc *.c pour compiler tous mes fichiers c du repertoire courant, bah tout marche... Quel est le plus que je gagne en ayand un header personel ?
Beaucoup de sécurité. Ceci va compiler
#include <stdio.h>
int main(void) {
printf("2.1+2.2=%d\n",add(2.1));
return(0);
}
void add(int a, int b) {
return(a+b);
}
avec des warnings, va s'exécuter, mais pour le résultat....
Le prototypage des fonctions permet au compilateur de vérifier que le nombre d'arguments est correct, et que chaque argument est du bon type.
- Edité par edgarjacobs 15 octobre 2019 à 19:54:37
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Si tu appelle une fonction qui est dans un autre fichier, qui renvois autre chose qu'un int et que t'essaye de l'afficher bah tu segv. Voilà l'intérêt.
./a.out tu segv alors que si t'avais mis les protos dans un .h ça marcherai nickel
Utilité de mettre des prototypes de foctions dans
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent