J'ai 2 fichiers algo.c et numberArrival.c dans lequel j'utilise une fonction appele randgen().
Cette fonction a besoin de : #include "RandomNumber.h"

Si je mets #include "RandomNumber.h" dans les 2 fichiers j'obtiens :
NumberArrival.o:NumberArrival.c.text+0x0): multiple definition of `_randgen'
Algo.o:Algo.c.text+0x0): first defined here
NumberArrival.o:NumberArrival.c.text+0x137): multiple definition of `_randint'

Algo.o:Algo.c.text+0x137): first defined here
collect2: ld returned 1 exit status
make: *** [main] Error 1
Ce qui est normal je vous l'accorde !

Le probleme etrange c'est que la fonction randgen marche uniquement la ou RandomNumber .h est inclus.
Par exemple si je mets #include "RandomNumber.h" dans un le fichier algo.c le randgen() dans ce fichier va donne des resultats coherents compris entre 0 et 1.
Par contre dans numberArrival.c rangen() donnera des resultats incoherents ! Quelqu'un peut m'exdpliquer pourquoi ?


Plus precisement dans l'autre fichier elle marchera aussi mais avec des resultats incoherents.
Comme il est impossible de mettre



Pourtant les 2 fichiers sont relies Voici les include
la ou est le main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
#include <stdlib.h>
#include <stdio.h>
#include "NumberArrival.h"
#include "Buffer.h"
#include "RandomNumber.h"
#define TRUE 1
#define FALSE 0
typedef int BOOL;
NumberArrival.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
#include <stdlib.h>
#include <stdio.h>
#include "RandomNumber.h"
j'espere avoir ete clair