salut
j'ai un pote qui debute en C et il s est retrouvé confronté à un pb bizarre. Lorsqu'il appelait une fonction dont il passait un float en paramètre , la valeur etait changé .
J'ai donc pris son code et je me suis apercu d'un truc : a aucun moment il n'a inclus le fichier .h qui est censé contenir la fonction appelée .
Code :
- //reservation.cpp
- void reservation(float a) {
- // code
- }
- //reservation.h
- void reservation(float a);
|
puis dans le main
Code :
- main() {
- float val;
- val = 1.2f;
- reservation(val);
- }
|
Dans ce cas, il n'a pas fait le #include "reservation.h" mais ca compile quand meme. Et lorsqu en mode debug je trace la chose, val change de valeur à l'appel de la fonction.
Evidemment, j'ai eu un peu de mal à trouver car je n'ai pas pensé à vérifier que l'include etait bien présent. lorsque je l'ai rajouté tout est rentré dans l'ordre.
Cependant, j'aurai voulu de la part des experts en C de ce forum, une petite explication pourquoi le programme a quand meme compilé, et pourquoi la valeur a été changé.
merci de votre patience