OVH Cloud OVH Cloud

[URGENT] prédéclaration de variable

5 réponses
Avatar
Sivaller
Comment définir un enregistrement prédéclaré ???
typedef *PMACHINE;

typedef unsigned char (*procreadmemorybyte) (PMACHINE,unsigned
short,unsigned long);

typedef struct {
xxxxx
xxxxxx
}TMACHINE,*PMACHINE;

Le compilo me renvoie une erreur:
F:\Projet\vc\x86wd\X86WD\xm.h(402) : error C2371: 'PMACHINE' : redefinition;
different basic types
F:\Projet\vc\x86wd\X86WD\xm.h(146) : see declaration of 'PMACHINE'
"

Comment résoudre ce probléme sans bien sûre déplacer le typedef struct en
premiére ligne ?????

Merci bcp ;

5 réponses

Avatar
drkm
"Sivaller" writes:

Comment définir un enregistrement prédéclaré ???
typedef *PMACHINE;


Je suppose que tu voulais dire :

typedef TMACHINE * PMACHINE ;

typedef unsigned char (*procreadmemorybyte) (PMACHINE,unsigned
short,unsigned long);

typedef struct {
xxxxx
xxxxxx
}TMACHINE,*PMACHINE;


Tu redéfinis PMACHINE. En C++, il ne faut pas faire de typedef
d'une structure anonyme, mais nommer directement la structure. De
plus, les noms entièrement en majuscule désignent abituellement des
macros de préprocesseur.

Ceci devrait faire ce que tu veux, si j'ai bien compris le
problème (code non testé) :

struct TMACHINE ;
typedef TMACHINE * PMACHINE ;

typedef unsigned char ( * procreadmemorybyte ) ( PMACHINE ,
unsigned short ,
unsigned long ) ;

struct TMACHINE {
// ...
} ;

--drkm

Avatar
Sivaller
lu
"drkm" a écrit dans le message de
news:
"Sivaller" writes:

Comment définir un enregistrement prédéclaré ???
typedef *PMACHINE;


Je suppose que tu voulais dire :

typedef TMACHINE * PMACHINE ;

typedef unsigned char (*procreadmemorybyte) (PMACHINE,unsigned
short,unsigned long);

typedef struct {
xxxxx
xxxxxx
}TMACHINE,*PMACHINE;


Tu redéfinis PMACHINE. En C++, il ne faut pas faire de typedef
d'une structure anonyme, mais nommer directement la structure. De
plus, les noms entièrement en majuscule désignent abituellement des
macros de préprocesseur.

Ceci devrait faire ce que tu veux, si j'ai bien compris le
problème (code non testé) :

struct TMACHINE ;
typedef TMACHINE * PMACHINE ;

typedef unsigned char ( * procreadmemorybyte ) ( PMACHINE ,
unsigned short ,
unsigned long ) ;

struct TMACHINE {
// ...
} ;

--drkm



Avatar
drkm
"Sivaller" writes:

lu


<40 lignes de citation inutiles snipped>

De grâce, ne cite que les parties pertinentes, au regard de ta
réponse, du message auquel tu réponds. Et répond à l'endroit.

--drkm

Avatar
Matthieu Moy
drkm writes:

De grâce, ne cite que les parties pertinentes, au regard de ta
réponse, du message auquel tu réponds. Et répond à l'endroit.


Et hop !

http://www.giromini.org/usenet-fr/repondre.html

--
Matthieu

Avatar
drkm
Matthieu Moy writes:

http://www.giromini.org/usenet-fr/repondre.html


Merci. En bon fainéant, je comptais sur Fabien pour l'URL, mais je
vois qu'il a de l'aide, maintenant ;-)

--drkm