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 :

fichiers en tête et déclaration


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut fichiers en tête et déclaration
    Bonjour à tous,

    J'ai créer un fichier d'entête qui ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // prototypes pour strsub.c
    #ifdef __cplusplus
    extern "C"
    {
    #endif
     
    #ifndef strsub
    #define strsub
     char* _strsub(const char chaine[], unsigned int debut, unsigned int fin);
    #endif
    Pourtant l'entête placé dans le fichier main fonctionne à merveille.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    /*  #include "strsub.h"   */
    char* strsub(const char chaine[], unsigned int debut, unsigned int fin); 
     
    int main(void)
    {
    const char *s = "Hello, world!";
     
    printf("%s\n", strsub(s, 7, 11));
    return 0;
    }

  2. #2
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Ça fonctionera peut être mieux comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // prototypes pour strsub.c
    #ifdef __cplusplus
    extern "C"
    {
    #endif
     
    #ifndef strsub
    #define strsub
     char* _strsub(const char chaine[], unsigned int debut, unsigned int fin);
    #endif
    
    #ifdef __cplusplus
    }
    #endif

  3. #3
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut
    ;-)



    hhhha
    Ben . . . non . Fonctionne pas plus.

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    C'est normal qu'a un endroit, le fonction s'appelle strsub et à un autre _strsub ?

    De plus, la garde qui porte un nom de fonction me parait risqué : que donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #ifdef __cplusplus
    extern "C"
    {
    #endif
     
    #ifndef strsub_2009_04_03
    #define strsub_2009_04_03
     char* strsub(const char chaine[], unsigned int debut, unsigned int fin);
    #endif
     
    #ifdef __cplusplus
    }
    #endif

  5. #5
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut
    Merci

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par défaut
    IIRC, La norme interdit de créer des fonctions dont le nom commence par str* : Ce sont des noms réservés.

    D'un autre côté, elle interdit aussi les identificateurs globaux dont le nom commence par un underscore (noms réservés à l'implémentation)...
    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.

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

Discussions similaires

  1. Générer un fichier "En-tête et détail" depuis un fichier plat
    Par Eldamso dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 11/06/2013, 17h04
  2. Création fichier en-tête automatiquement
    Par FabTheGeek dans le forum Débuter
    Réponses: 2
    Dernier message: 23/03/2011, 12h59
  3. Réponses: 1
    Dernier message: 08/07/2009, 11h38
  4. Réponses: 10
    Dernier message: 11/03/2007, 12h33
  5. Réponses: 2
    Dernier message: 09/02/2005, 23h16

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