Bonjour,

J'ai besoin d'un conseil car je ne comprend pas cette erreur "conflicting types".
J'ai mis le prototype de la fonction dans le fichier header: editeur.h.
J'ai écris la fonction dans le fichier source: editeur.c.
Et je l'utilise dans ce même fichier.
J'utilise la SDL et j'essaye de redimensionner un rectangle(ça fonctionne hors fonction, mais c'était moche ).

Et je reçois toujours cette erreur:

C:\prog\Projects\2DjumpGame\editeur.c 407 error: conflicting types for 'redimensionnerRect'

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
void redimensionnerRect(int xMod, int yMod, int wMod, int hMod, long currentRect, SDL_Surface **sol, SDL_Rect **posSol, SDL_Surface *ecran)
{
    sol[currentRect] = SDL_CreateRGBSurface(SDL_HWSURFACE, posSol[currentRect]->w + wMod , posSol[currentRect]->h + hMod, 32,0,0,0,0);
    SDL_FillRect (sol[currentRect], NULL, SDL_MapRGB(ecran->format, 50, 50, 50));
    posSol[currentRect]->x += xMod;
    posSol[currentRect]->y += yMod;
 
}
C:\prog\Projects\2DjumpGame\editeur.c 194 error: previous implicit declaration of 'redimensionnerRect' was here

Code : Sélectionner tout - Visualiser dans une fenêtre à part
redimensionnerRect(-1,0,1,0,currentRect, *sol, *posSol, ecran);
et voici le prototype contenu dans editeur.h

Code : Sélectionner tout - Visualiser dans une fenêtre à part
void redimensionnerRect(int xMod, int yMod, int wMod, int hMod, long currentRect, SDL_Surface **sol, SDL_Rect **posSol, SDL_Surface *ecran);

Mais je ne suis pas sûr d'une chose: dois-je faire un #include de mon fichier editeur.h dans le fichier editeur.c?

Et, tant que j'y suis, j'ai lu quelque part qu'il ne fallait pas remettre l'include des librairies utilisées dans tous les fichiers du projet: "... cela va à l'encontre de la règle de l'encapsulation"(d'après l'auteur d'un post).
Mais si je ne le fait pas, il me bombarde d'erreurs.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#include <stdlib.h>
#include <stdio.h>
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>
Dois-je inclure le main.c dans tous mes fichiers pour palier à ce problème?
En est-ce un?

Voilà, j'arrête avec mes questions.
D'avance merci pour vos réponses!