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 :

define et fonctions


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut define et fonctions
    Bonjour,
    je viens de voir dans un vieux programme (fonctions style K&R) quelque chose qui m'intrigue.

    Il y a plusieurs fichiers .c et .h

    dans les fichiers .c, la définition de certaines fonctions est précédé du mot public :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public int
    search(search_type, pattern, n)
        int search_type;
        char *pattern;
        int n;
    {
     
       /* code */
    }
    J'ai d'abord pensé que public était un mot réservé du langage C, mais en fait non.

    Dans un fichier .h il y a la directive suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #define public      /* PUBLIC FUNCTION */
    et un autre fichier .h contient la liste de toutes les fonctions précédées de ce mot public :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
        public int search ();
    ...
    Ces fonctions sont celles qui sont utilisées dans d'autres fichiers que celles où elles ont été définies.

    Quelqu'un pourrait m'expliquer l'astuce ?

    Notamment le fait qu'on puisse déclarer
    #define unmot
    je croyais qu'on devait obligatoirement quelque chose du style :
    #define unmot valeur

    D'autre part, sur le fait qu'on peut rajouter des mots clés aléatoires? avant la définition d'une fonction

    merci d'avance.
    arno

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    Citation Envoyé par arno.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define public      /* PUBLIC FUNCTION */
    la macro sera remplacée par :
    Si la suppression des commentaires n'a pas encore eu lieu, sinon par rien.

    Dans tout les cas, au niveau du code cette macro ne sert à rien. Elle sert seulement à la conpréhension du code

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par gege2061
    la macro sera remplacée par :
    Merci, je n'avais pas compris

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

Discussions similaires

  1. define en fonction des bibliothèques utilisées
    Par robinsondesbois dans le forum Débuter
    Réponses: 11
    Dernier message: 23/04/2014, 14h38
  2. Existe-t-il une fonction if not define
    Par phoque.r dans le forum Langage
    Réponses: 2
    Dernier message: 12/04/2007, 15h02
  3. DEFINE et fonctions
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2006, 19h54
  4. Réponses: 17
    Dernier message: 24/07/2006, 18h23
  5. USER DEFINE FONCTION : PB éxécution requête
    Par juelo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/01/2004, 12h12

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