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 :

Bloc de code entre accolades non précédé d'un mot clé


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Par défaut Bloc de code entre accolades non précédé d'un mot clé
    Bonjour,

    La question est peut être futile mais pourquoi certains programmeurs utilisent des blocs de code entre accolades non précédés d'un mot clé ?

    Exemple :

    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
     
    /* handle pending connects */
    if(cmd_connect[0])
    {
    	client_connect(cmd_connect);
    	cmd_connect[0] = 0;
    }
     
    /* update input */
    {
            static PERFORMACE_INFO scope = {"inp_update", 0};
    	perf_start(&scope);
    	inp_update();
    	perf_end();
    }
    Merci de votre attention.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 496
    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 496
    Par défaut
    Ça permet de créer un nouveau cadre de pile.

    Sémantiquement, les accolades servent à mettre plusieurs informations là où on en attend qu'une seule. En C, cela permet d'exécuter plusieurs instructions, là où on en attend qu'une seule, comme à la suite d'un if(). Et pour ce faire, généralement, on sauve le contexte, on fait son petit travail et on restaure le tout.

    Le principal intérêt d'utiliser des accolades « nues » en C est de permettre la déclaration de nouvelles variables, locales à ce bloc uniquement. Personnellement, je ne trouve pas ça très propre même si cela permet quand même d'allouer de la mémoire au plus tard et de la libérer au plus tôt.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Par défaut
    Merci beaucoup pour votre réponse.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 157
    Billets dans le blog
    151
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Ça permet de créer un nouveau cadre de pile.

    Sémantiquement, les accolades servent à mettre plusieurs informations là où on en attend qu'une seule. En C, cela permet d'exécuter plusieurs instructions, là où on en attend qu'une seule, comme à la suite d'un if(). Et pour ce faire, généralement, on sauve le contexte, on fait son petit travail et on restaure le tout.

    Le principal intérêt d'utiliser des accolades « nues » en C est de permettre la déclaration de nouvelles variables, locales à ce bloc uniquement. Personnellement, je ne trouve pas ça très propre même si cela permet quand même d'allouer de la mémoire au plus tard et de la libérer au plus tôt.
    J'utilise exactement les blocs pour la mémoire au plus tard et au plus tot.
    Mais je n'en abuse pas ( enfin j'espère pas ).

    Cela pourrait aussi aider le lecteur du code, avec l'EDI qui pemet de retrécir les bloc en ligne ;aie: Mais j'imagine que cela ne vaut pas le coup.

    Donc si je comprends bien, faire un bloc, entraine un cout. Car vous avez dit, sauvegarde de contexte. Ce qui veut dire une certaine copie d'un état.

    Et dans le cas du if, d'une seule ligne, c'est un bloc ou pas ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Donc si je comprends bien, faire un bloc, entraine un cout. Car vous avez dit, sauvegarde de contexte. Ce qui veut dire une certaine copie d'un état.
    Pas nécessairement, ça dépends de l'implémentation.

    Par exemple, il n'est pas impossible que la portée des variables soient vérifiée lors de la compilation mais que le code généré soit le même avec ou sans les blocs.

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

Discussions similaires

  1. C# XAML Code lu ou non entre debug et release
    Par glob04d dans le forum C#
    Réponses: 8
    Dernier message: 07/02/2011, 12h09
  2. reprendre un enchainement de code entre deux formulaires.
    Par scully2501 dans le forum Access
    Réponses: 2
    Dernier message: 05/10/2005, 16h11
  3. Réponses: 6
    Dernier message: 22/09/2005, 16h59
  4. [VB.NET] Comment ecrire du code entre <title>
    Par ykane dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/05/2004, 16h58
  5. [VB6] mise en commentaire d'un bloc de code
    Par JuanDeLaPlaya dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/04/2003, 15h05

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