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 :

question sur macro et prototype


Sujet :

C

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Par défaut question sur macro et prototype
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    /*fichier bonjour.h*/
    #ifndef BONJOUR_H
    #define BONJOUR_H
     
    extern int silencieux;
     
    int addition (int a, int b);
     
    #endif
     
     
    /*fichier bonjour.c */
    #include <stdio.h>
    #include <stdlib.h>
    #include "bonjour.h"
     
    int silencieux;
     
    int addition (int a, int b)
    {
    int c = a + b
    if (!silencieux)
    printf ("a + b = %d\n", c);
    return (c)
    }
     
    int main()
    {
    int resultat;
    silencieux = 1;
    resultat = addition (4, 3);
    printf ("addition (4, 3) = %d\n", resultat);
    exit (EXIT_SUCCESS);
    }
    J'ai quelques questions sur ce bout de code.

    Je pensais que les fonctions étaient généralement placées après la fonction main().
    Ensuite que signifie if(!silencieux) ?
    Que cherche t'on à montrer avec ce if et le fait d'attribuer "1" à silencieux ?
    Merci.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 461
    Par défaut
    Bonjour,

    Il n'y a pas d'ordre imposé pour les fonctions en C. La seule condition est que le compilateur doit avoir été informé de leur existence avant de les utiliser. En ce sens, cela t'obligerait justement à définir toutes tes fonctions avant main() mais le plus propre et le plus censé consiste à regrouper leurs prototypes dans un fichier *.h qui, lui, est inclus en tête de fichier, puis d'y définir ces fonctions dans l'ordre de ton choix.

    « Silencieux » est probablement la traduction du mot anglais « quiet », qui est souvent utilisée dans le développement de logiciels. Un mode quiet sert à demander au dit logiciel de ne renvoyer aucun message d'information à l'écran, en général parce qu'il est lancé par un script automatique.

    La ligne en question se traduit alors par « Si pas silencieux, alors affiche le message ».

  3. #3
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour

    je confirme, pas d'ordre pour placer tes fonctions, mais le compilateur doit savoir comment appeler ta fonction comme ceci par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void maFonction(int param);
     
    void main(void)
    {
      maFonction(5);
    }
     
    void maFonction(int param)
    {
    }
    Ensuite que signifie if(!silencieux) ?
    test si la variable est égale à 0.
    Ce n'est pas très propre d'écrire comme cela. Le C se sait pas gérer les booléen, donc beaucoup de programmeur ont l'habitude de déclarer des pseudo boolean en int et de les utiliser comme if (toto). Cela peut générer des bugs.

    Que cherche t'on à montrer avec ce if et le fait d'attribuer "1" à silencieux ?
    quand silencieux est différent de 0 , on affiche une trace de l’exécution
    Page sur Developpez : http://pbriand.developpez.com

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Par défaut
    Merci à vous.

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

Discussions similaires

  1. [XL-2010] Deux questions sur macros
    Par Ginette54 dans le forum Excel
    Réponses: 2
    Dernier message: 21/06/2013, 19h32
  2. Questions sur Macros
    Par deubelte dans le forum C++
    Réponses: 1
    Dernier message: 20/12/2011, 13h44
  3. petite question sur les macros complémentaires
    Par kbakouan dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2007, 15h17
  4. question sur TableDestination dans macro TCD
    Par sash6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/06/2007, 15h31
  5. Question sur les prototypes de fonctions
    Par GnuVince dans le forum Langage
    Réponses: 2
    Dernier message: 23/11/2006, 23h37

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