IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Problème avec le type size_t


Sujet :

C

  1. #1
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut Problème avec le type size_t
    Bonjour à tous !

    Je viens de me heurter à un problème de compilation concernant le type size_t

    Dans un fichier .h je déclare cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    size_t		my_fread(void		*ptr,
    			 size_t		size,
    			 size_t		nmemb,
    			 s_file		*stream);
    Avec tous les bons include et tout, mais quand je veux compiler c'est une horreur, j'ai le droit a des :
    libstream.h:69: erreur: syntax error before «my_fread»
    libstream.h:70: erreur: syntax error before «size_t»
    cc1: warnings being treated as errors
    libstream.h:72: attention : type defaults to «int» in declaration of «my_fread»
    libstream.h:72: attention : la définition de données n'a pas de type ni de classe de stockage
    La ligne 69 correspond à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    size_t		my_fread(void		*ptr,
    Je suis sous Ubuntu 6.06, j'ai testé sous NetBSD 3.0 même erreur
    Si je commente la déclaration de ma fonction mon programme fonctionne nickel, j'utilise également la vrai fonction fread et ça fonctionne ...

    Qu'est ce qui cloche ???

    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut,

    Je pense que tu as oublié d'inclure <stdlib.h>

  3. #3
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut

    /me se tape la tête contre le mur ...

    En effet, je viens de tester en mettant l'include dans le .h et ça fonctionne ...

    Je pensais qu'en le mettant dans mon .c ça suffisait

    Bon, ba merci beaucoup ! Tu m'évites de longues heures de recherche ...

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par K20
    Dans un fichier .h je déclare cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    size_t		my_fread(void		*ptr,
    			 size_t		size,
    			 size_t		nmemb,
    			 s_file		*stream);
    Avec tous les bons include et tout, mais quand je veux compiler c'est une horreur, <...> Qu'est ce qui cloche ???
    Dans le .h, il suffit d'inclure <stddef.h>

    http://emmanuel-delahaye.developpez....tes.htm#size_t

  5. #5
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut
    Je ne peux pas utiliser <stddef.h>
    Mais avec stdlib.h ça fonctionne nickel

    Merci

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par K20
    Je ne peux pas utiliser <stddef.h>
    Pourquoi ? Toute implémentation conforme du C a ce header.

  7. #7
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut
    Je réalise cette fonction dans le cadre d'un projet scolaire et ce header nous est interdit

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par K20
    Je réalise cette fonction dans le cadre d'un projet scolaire et ce header nous est interdit
    Mais c'est quoi ces conneries ? C'est quoi cette école ?

  9. #9
    K20
    K20 est déconnecté
    Membre confirmé
    Profil pro
    Ingé DevOps
    Inscrit en
    Novembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingé DevOps

    Informations forums :
    Inscription : Novembre 2005
    Messages : 183
    Par défaut
    Non ce n'est pas EPITECH
    Et de toute façon stddlib suffit amplement dans mon cas

  10. #10
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Oui, mais <stddef.h> suffit encore plus que <stdlib.h>, et il y a de grandes chances qu'il soit lui-même inclus par <stdlib.h>...
    Ça veut dire que tu n'as pas le droit d'utiliser <stdlib.h> non plus ?

    Edit: J'ai rien dit...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Médinoc
    Oui, mais <stddef.h> suffit encore plus que <stdlib.h>, et il y a de grandes chances qu'il soit lui-même inclus par <stdlib.h>
    Il y a de grandes chances qu'il ne soit pas inclus par stdlib.h. C'est interdit en C (au contraire du C++).

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Mince, la boulette.
    Je me suis fait intoxiquer par les headers Win32...

    PS: Et aussi, j'ignorais que c'était interdit. On sait pourquoi exactement ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Médinoc
    Mince, la boulette.
    Je me suis fait intoxiquer par les headers Win32...
    Si inclure stdlib.h définit ptrdiff_t ou offsetof, il y a un bug. Il y a peut-être des defines qui contrôlent ce qui est définit.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/11/2005, 20h40
  2. Problème avec le type BLOB dans oracle
    Par pguedia dans le forum Oracle
    Réponses: 1
    Dernier message: 10/11/2005, 17h33
  3. problème avec le type timestamp
    Par aline dans le forum Oracle
    Réponses: 6
    Dernier message: 21/02/2005, 10h05
  4. [Débutant][Phppgadmin] problème avec les types
    Par PoY dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/08/2004, 17h06
  5. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo