Bonjour,

Avant d'aller plus loin dans mon apprentissage, je pensait que ce serait plus simple pour moi d'avoir les fichiers .h et .c séparé.

Alors j'ai repris un fichier d'affichage de menu qui marche bien en 1 seul fichier pour voir comment faire en programmation modulaire.

dans mon main.c

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
 
/* Logiciel de compta perso */
 
#include <stdio.h>
#include <stdlib.h>
#include "menu.h"
 
#define DELAY 150000
 
void delay(void);
 
 
int main(void)
{
	int choix;
 
	while(1);
	{
		/* Branchement effectué en fontion du choix de de l'utilisateur */
		switch(choix = menu())
		{
			case 1:
			{
				puts("\nExécution du choix 1.");
				delay();
				break;
			}
			case 2:
			{
				puts("\nExécution du choix 2.");
				delay();
				break;
			}
			case 3:
			{
				puts("\nExécution du choix 3.");
				delay();
				break;
			}
			case 4:
			{
				puts("\nExécution du choix 4.");
				delay();
				break;
			}
			case 5:
			{
				puts("\nExécution du choix 5.");
				delay();
				exit(0);
			}
			default:
			{
				puts("\nChoix incorrect, choisissez un autre\n");
				delay();
			}
		}
	}
	return 0;
}
 
 
void delay(void)
{
	long x;
	for (x = 0; x < DELAY; x++)
		;
}
dans mon menu.c

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
 
#include <stdio.h>
#include <stdlib.h>
 
#include "menu.h"
 
int menu(void)
{
  int reponse;
 
  puts("Le menu\n");
  puts("\nEntres 1 pour exécuter la tâche A.");
  puts("\nEntrez 2 pour exécuter la tâche B.");
  puts("\nEntrez 3 pour exécuter la tâche C.");
  puts("\nEntrez 4 pour exécuter la tâche D.");
  puts("\nEntrez 5 pour sortir du programme.");
 
  scanf("%d", &reponse);
 
  return reponse;
 
}
Et enfin mon menu.h

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
/* définition du menu */
 
int menu(void);
 
/* fin de définition du menu */
et je compile mon programme avec la commande

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
gcc -Wall main.c menu.c -o compta
Qu'est-ce que je fais encore mal ?