Bonsoir à vous tous !
J'ai résolu mon problème mais ça m'énerve parce que je ne trouve pas d'explication du pourquoi je l'ai résolu.
C'est très simple dans un fichier foo1.c j'ai une fonction (déclaration et définition) :
Dans un second fichier foo2.c, j'appelle cette fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part uint8_t* make_sine(double, double, double);
En pensant que la conversion des int en double se ferait automatiquement, or ce n'est pas le cas. C'est comme si les int (500, 1, 0) était rentré dans la fonction sans vérification de type et du coup la fonction me renvoi des valeurs aberrantes. Évidemment, si je met (500.0, 1.0, 0.0) tout fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part make_sine(500, 1, 0);
J'ai résolu le problème en déclarant mon prototype de fonction dans un fichier foo1.h et là les conversions se font implicitement !
Est-ce que quelqu'un pourrait m'expliquer pourquoi il n'y a pas cette vérification de type quand on appel une fonction depuis un autre fichier.
Merci !
Partager