Bonjour,
j'ai codé un petit programme qui marche parfaitement sur visual studio sans aucun probleme et sans aucune erruer affiché.
Mais lorsque j'ai voulu compiler et executer le meme prgramme sur Unix il m'a affiché ces deux erreur suivantes pourtant j'ai bien mis les prototype de toutes les focntions dans le .h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
lab_lib.c:41: attention : implicit declaration of function ârecherche_cheminâ
lab_lib.c: Hors de toute fonction :
lab_lib.c:53: erreur: static declaration of ârecherche_cheminâ follows non-static declaration
lab_lib.c:41: erreur: previous implicit declaration of ârecherche_cheminâ was here
make: *** [lab_lib.o] Erreur 1
et voici le codé source de mon petit programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
#include <stdlib.h>
#include "tab2d.h"
 
char * afficher_lab(Un_tab2d *ptab, char *palette){
	int l, c, i, j;
	char * cote;
 
	l = ptab->nb_lignes;
	c = ptab->nb_colonnes;
	cote = malloc((c+2)*sizeof(char));
 
	*cote = '+';
	for(j=0; j<c; j++){
		cote[j+1] = '-';
	}
	cote[c+1] = '+';
 
	puts(cote);
	for(i=0; i<l; i++){
		printf("|");
		for(j=0; j<c; j++){
			if(PLANTAB2D(ptab, i, j) == 0)
				printf("%c",palette[0]);
			else if (PLANTAB2D(ptab, i, j) == 1)
				printf("%c",palette[1]);
			else if (PLANTAB2D(ptab, i, j) == 2)
				printf(".");
			else printf("%c",palette[0]);
 
 
		}
		puts("|");
	}
	puts(cote);
}
 
 
Un_tab2d *chercher_chemin(Un_tab2d *ptab){
	Un_tab2d * dup = copier_tab2d(ptab);
       if(recherche_chemin(dup, 0, 0) == 0){
		puts("\n\t\t\t\t* PAS DE CHEMIN *");
 
		return NULL;
	}
	else{
		puts("\n\t\t\t *Voici le chemin du labyrinthe*");
		affiche_tab(dup);
		return dup;
	}
}
 
static int recherche_chemin(Un_tab2d *ptab, int lc, int cc){
	if((lc >= ptab->nb_lignes) || (lc < 0) || (cc >= ptab->nb_colonnes) || (cc < 0))  return 0;
	if(PLANTAB2D(ptab, lc, cc) != 0) return 0;
 
	if ((lc == ptab->nb_lignes-1) && (cc == ptab->nb_colonnes-1)){
		PLANTAB2D(ptab,lc,cc) = 2;
		return 1;
	}
 
	PLANTAB2D(ptab, lc, cc) = 2;
 
	if(recherche_chemin(ptab, lc, cc+1)) return 1;
	if(recherche_chemin(ptab, lc+1, cc)) return 1;
	if(recherche_chemin(ptab, lc-1, cc)) return 1;
	if(recherche_chemin(ptab, lc, cc-1)) return 1;
 
	PLANTAB2D(ptab, lc, cc) = 3; return 0;
}
j'ai joint tout les fichier nécessaires.
Je vous remercie d'avance pour touts vos suggestions.