constantes.h[/COLOR
Code constantes.h[/COLOR : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
]
#ifndef _CONSTANTES_H
#define _CONSTANTES_H

const char *str_constant[] = {
    "nom1",
    "nom2"};
#endif

Code A.h : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#ifndef _A_H
#define _A_H

#include "constantes.h"

void fonctionA();

#endif

Code A.c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
#include "A.h"
 
void fonctionA()
{
    ...
    Définition de ma fonction
    printf("%s",str_constant[0]);
    ...
}

Code B.h : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#ifndef _B_H
#define _B_H

#include "constantes.h"

void fonctionB();

#endif

Code B.c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
#include "B.h"
 
void fonctionB()
{
    ...
    Définition de ma fonction
    printf("%s",str_constant[0]);
    ...
}

Code main.c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 
#include "A.h"
#include "B.h"
 
void mexFunction(
int       nlhs,            /* nrhs : nombre de parametres en entree */
mxArray  *plhs[],          /* prhs : tableau sur les elements en entree */
int       nrhs,            /* nlhs : nombre de parametres en sortie */
const     mxArray *prhs[]) /* plhs : tableau sur les elements en sortie */
{
fonctionA();
fonctionB();
}

Je comprends à peu prêt d'ou vient l'erreur, il doit surement charger deux fois le fichier constantes.h à la compilation et généré une erreur. Mais les #ifndef / #define ne sont pas censés protéger ces erreurs? Comment remédier à ce problème?

Merci pour votre aide!

Edit : je sais pas trop si je devais poser ma question ici, ou dans la partie C... J'espère avoir bien fait!