Type Structure dan Borland C

Résolu
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009 - 25 mai 2009 à 14:27
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009 - 25 mai 2009 à 16:48
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

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
25 mai 2009 à 15:35
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;
3
cs_beg0 Messages postés 51 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 13 mars 2011 1
25 mai 2009 à 15:49
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.
3
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009
25 mai 2009 à 16:48
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;
0
Rejoignez-nous