Type Structure dan Borland C [Résolu]

Signaler
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009
-
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009
-
Bonjour,

Je combine un programme avec Borland C 5. Il a indiqué qu'il y avait un erreur "Type Name Expected" à cette ligne:

int prepareAcquis(char *addIP,int numVoie,int numPort,int Fs,configVoie config, int numEchant);

dans le fichier en-tête dont le contenu est le suivant:

struct configVoie{
    int Coupl;
    int TypCap;
    int Range;
    int Pret;
};


int prepareAcquis(char *addIP,int numVoie,int numPort,int Fs,configVoie config, int numEchant);

Où est l'erreur? Merci!

3 réponses

Messages postés
3838
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
19 février 2021
119
C'est du C ou du C++ ? En C++, ça fonctionnerait, mais si c'est du C, alors:

struct configVoie
{
    int Coupl;
    int TypCap;
    int Range;
    int Pret;
};

int prepareAcquis(char *addIP,int numVoie,int numPort,int Fs,configVoie config, int numEchant);

configVoie n'existe pas. En effet seul "struct ConfigVoie" existe.
Deux solutions:
1) Changer la signature:
int prepareAcquis(char *addIP,int numVoie,int numPort,int Fs, struct configVoie config, int numEchant);
2) Rajouter un typedef, juste après la déclaration de stucture:
typedef struct configVoie configVoie;
Messages postés
51
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
13 mars 2011
1
le type est "struct configVoie" et pas simplement "configVoie"

ie: la declaration de ta fonction doit etre
int prepareAcquis(char *addIP,int numVoie,int numPort,int Fs, struct configVoie config, int numEchant);

(Attention, tu dois corriger l'erreur deux fois : dans ton .c et dans ton .h)

si tu veux t'affranchir de mettre le "struct" devant, tu peux faire un typedef apres la declaration de ta structure:
ie:
struct configVoie{
    int Coupl;
    int TypCap;
    int Range;
    int Pret;
};

typedef struct configVoie configVoie_t;

et utiliser configVoie_t a la place de "struct configVoie" dans la suite de ton code.
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009

Merci, ça marche. Mais j'ai trouvé une autre cause.

Pour la combinaison, j'ai utilisé la commande:

bcc32 [Nom de fichier principale].cpp  [Nom de fichier d'en-tête] .h

alors qu'il faut mieux d'utiliser la commande:

bcc32 [Nom de fichier principale].cpp  [Nom de fichier d'en-tête].cpp

Avec ça, c'est pas obligé de déclarer: typedef struct configVoie configVoie_t;