Besoin d explication sur les inclusions

Besoin d explication sur les inclusions - C - Programmation

Marsh Posté le 11-12-2003 à 10:42:02    

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 :
  1. //reservation.cpp
  2. void reservation(float a)  {
  3.   // code
  4. }
  5. //reservation.h
  6. void reservation(float a);


 
puis dans le main
 

Code :
  1. main() {
  2.   float val;
  3.   val = 1.2f;
  4.   reservation(val);
  5. }


 
 
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 :)

Reply

Marsh Posté le 11-12-2003 à 10:42:02   

Reply

Marsh Posté le 11-12-2003 à 10:50:41    

parce que ton compilateur date un peu et ne t'avertit pas du problème. mais le problème reste entier. pour lui, il aura vu  
 
int reservation(float);
 
d'ou un problème
 
au fait, c'est
 
void main()
ou
int main()

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed