Bonjour,

Ayant récemment commencé l'apprentissage du C, une question à laquelle je n'ai pas trouvé de réponse m'est venue en tête, je vous explique :

J'ai crée 2 fichiers sources et 2 fichiers headers pour faire un test :

Code main.c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <stdlib.h>
#include "deux.h"
 
int main()
{
    int nombre=0;
    printf("%d", addFour(nombre));
}

Code deux.c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
int addFour(int a)
{
    return 4+a;
}

Code main.h (vide) : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#ifndef MAIN_H_INCLUDED
#define MAIN_H_INCLUDED
 
 
 
#endif // MAIN_H_INCLUDED

Code deux.h : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#ifndef DEUX_H_INCLUDED
#define DEUX_H_INCLUDED
int addFour(int a);
 
 
#endif // DEUX_H_INCLUDE

Je ne comprends pas pourquoi cela me renvoie un erreur, je construis la fonction dans deux.c et je mets son prototype dans deux.h, puis je donne à main.c l'accès à deux.h, là où se trouve mon prototype, donc il devrait avoir accès à la fonction et donc être capable d'utiliser la fonction "addFour", non ?

Quel est l'intérêt d'un header s'il n'est utile que pour son propre fichier miroir .c ?

Qu'est-ce qui ne va pas ? Quelqu'un peut-il m'expliquer ce que j'ai mal compris ?

D'avance je vous remercie !

(Je débute, même si ça peut paraître "débile" pour vous, ça ne l'est pas pour moi donc soyez gentils svp )