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

Linux Discussion :

Mise en forme d'un prog C


Sujet :

Linux

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    339
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 339
    Points : 279
    Points
    279
    Par défaut Mise en forme d'un prog C
    Salut à tous,

    voilà je voulais savoir si vous connaissiez des petits progs qui permettent de mettre en forme correctement un programme C pour qu'il respecte la norme ANSI. Il y a bien indent mais il ne fait que de l'indentation et je voudrais savoir s'il existe un programme un peu plus "puissant"

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 867
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 867
    Points : 4 873
    Points
    4 873
    Par défaut
    Je pense aussi qu'indent est très suffisant pour ceci. As-tu jeté un oeil dans le man de cette commande ? Il y a de quoi faire avec 8)

    @++

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    C'est normalisé la mise en forme : : :

    Je pensais qu'on parlait plus de style de mise en forme que de norme

  4. #4
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Le couple "indent" + "cb" (C-Beautifier) a longtemps dominé le "marché" des programmeurs peu désireux de présenter leur code "au-vol"

    Par contre, je ne trouve plus de traces de "cb" dans la suite GNU ... la dernière fois que je l'ai vu tourner, c'était sur un Unix, un vrai.

    Il existe aussi bcpp qui fait un peu de présentation.

    Sinon, je ne serais pas surpris que les "éditeurs" et les IDE les plus avancés disposent d'un module de "remise en forme" ...


    J'ai cependant souvent tendance à croire qu'une présentation homogène est préférable à une présentation "normalisée". Ces outils permettent aussi de le faire.

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    339
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 339
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par GLDavid
    Je pense aussi qu'indent est très suffisant pour ceci. As-tu jeté un oeil dans le man de cette commande ? Il y a de quoi faire avec
    Citation Envoyé par hegros
    C'est normalisé la mise en forme

    Je pensais qu'on parlait plus de style de mise en forme que de norme
    Justement, c'est pour ça que je cherchais un autre prog qu'indent. Quand je regarde les différents bouts de code, je ne vois pas la même chose et je pensais qu'il y avait une norme pour la mise en forme.
    Par exemple, ceci serait autorisé (les accolades sur le if):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int croiss3(int a, int b, int c)
    {
       int temp;
     
       if (a>b)
       {
          temp=a;
          a=b;
          b=temp;
       }
    /* bla bla bla*/
       return(0);
    }
    Et ceci ne le serait pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int croiss3(int a, int b, int c)
    {
       int temp;
     
       if (a>b)
          {
          temp=a;
          a=b;
          b=temp;
          }
    /* bla bla bla*/
       return(0);
    }
    Je sais que je suis pointilleux mais j'ai jamais codé en C en classe (normal, vu ma carrière) et comme je m'y perd avec tout ça, je me suis dit qu'un bon prog autre que indent pourrait m'éclairer (parce que sur le net je trouve rien)

    Bon, maintenant, si vous dites qu'il ne faut pas être aussi pointilleux, j'utiliserais indent en espérant qu'il va pouvoir rattraper mes fautes de débutants genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int croiss3(int a, int b, int c)
    {
       int temp;
     
       if (a>b) {
          temp=a;
          a=b;
          b=temp;
       }
    /* bla bla bla*/
       return(0);
    }
    Je sais même pas si c'est autorisé ça ....

    En bref, si y'a rien d'autres qu'indent à votre connaissance et que ça sert à rien que je cherche plus loin, dites le moi clairement (n'hésitez pas je vous mangerez pas ;-) ) et comme ça je clôture le post.

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    339
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 339
    Points : 279
    Points
    279
    Par défaut
    arf, grilled, ...

    Citation Envoyé par 2Eurocents
    Le couple "indent" + "cb" (C-Beautifier) a longtemps dominé le "marché" des programmeurs peu désireux de présenter leur code "au-vol"
    Je vais voir après cb, merci

    Sinon, je ne serais pas surpris que les "éditeurs" et les IDE les plus avancés disposent d'un module de "remise en forme" ...
    Je veux pas lancer un troll mais moi j'utilise xemacs, y'a sans doute une manière de réarranger le code mais j'avais jamais pensé que xeamcs pouvait le faire. Je vais regarder ça aussi. Merci encore

    Sinon, si vous connaissez des IDE qui font de la mise en forme automatique, ça m'intéresse aussi

  7. #7
    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 Re: [C] mise en forme d'un prog C
    Salut,

    Citation Envoyé par le mage tophinus
    voilà je voulais savoir si vous connaissiez des petits progs qui permettent de mettre en forme correctement un programme C pour qu'il respecte la norme ANSI. Il y a bien indent mais il ne fait que de l'indentation et je voudrais savoir s'il existe un programme un peu plus "puissant"

    Merci d'avance
    A mon avis tu confons deux choses : la mise en forme du code (tabulations...) et le code à proprement parlé.

    Pour la mise ne forme il n'existe pas de norme juste des conseils, ensuite c'est suivant tes goûts. Cela peut se faire automatiquement avec indent : man indent.
    Pour le code, il existe des normes (dont celle de l'ANSI) qui réglemente la syntaxe du langage ainsi qu'un certains nombre de fonctions qui constitues la bibliothèque standard du C. Pour régler ceci, il faut voir la configuration du compilateur : man gcc en particulier l'option -ansi

    [edit]Gégé plus qu'a la bourre comme d'hab'[/edit]

  8. #8
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    339
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 339
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par gege2061
    A mon avis tu confons deux choses : la mise en forme du code (tabulations...) et le code à proprement parlé.
    Y'a des chances que ça soit ça. Le truc c'est que par exemple, j'ai regardé dans les derniers posts sur forum C et il parait que :
    respecte la norme ansi tandis que
    ne la respecte pas. Donc je me suis dit qu'il y avait aussi quelque chose pour la mise en forme générale (c'est surtout les accolades j'ai l'impression qui me posent problème de savoir où les mettres)

  9. #9
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Il me semble avoir vu sous code::block la possibilité d'indenter le code selon différents styles. y'en avait 2-3 par défaut je crois.

  10. #10
    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
    Citation Envoyé par le mage tophinus
    j'ai regardé dans les derniers posts sur forum C et il parait que :
    respecte la norme ansi tandis que
    ne la respecte pas.
    Là tu parles bien de syntaxe, en fait c'est plus compliqué que ça. Pour les premiers pas de problème. Par contre pour les second (les commentaires à la C++), il sont apparue dans la norme C99 (datant de... 1999 bien sûr) le problème c'est que cette dernière n'est pas tout à fait au point (en particulier au niveau de gcc) donc pour faire du code qui compile sans problème, il est courrant de se restreindre à la version précédente de la norme (C90) qui ne comprenais pas les commentaires monolignes.

    Bon je vais m'arrêter là, sinon vous n'êtes pas couché

    Citation Envoyé par le mage tophinus
    Donc je me suis dit qu'il y avait aussi quelque chose pour la mise en forme générale (c'est surtout les accolades j'ai l'impression qui me posent problème de savoir où les mettres)
    Tu les met ou tu veux :
    Comme j'aime bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (...)
    {
      /* code */
    }
    A la java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (...) {
      /* code */
    }
    Façon champion IOCCC:
    Façon trop de tabulation tue l'indentation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (...)
      {
        /* code */
      }
    Voilà temps que tu respecte la syntaxe, les saut de ligne et espaces ne sont pas pris en compte.

  11. #11
    Membre régulier Avatar de Blowih
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par hegros
    Il me semble avoir vu sous code::block la possibilité d'indenter le code selon différents styles. y'en avait 2-3 par défaut je crois.
    Code::Blocks utilise astyle il me semble, on peut le trouver ICI et l'utilise en ligne de commade.
    ça marche plutot bien, je m'en suis servi sur un projet d'environ 80Mo de source sans soucis.
    les option de sont assez complete

  12. #12
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2004
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Février 2004
    Messages : 345
    Points : 420
    Points
    420
    Par défaut
    rien n'est imposé pour ce qui est de la "forme" de ton code.
    ceci doit compiler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int croiss3(int a, int b, int c){int temp;if (a>b) {temp=a;a=b;b=temp;}/* bla bla bla*/return(0);}
    Mais ecrire du code lisible est primordial pour le debogage et la maintenance. (sauf si tu es faché avec tes petits camarades qui vont passer derriere ton code)

  13. #13
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    339
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 339
    Points : 279
    Points
    279
    Par défaut
    J'ai regardé CodeBlocks mais il faudrait que je le recompile à la main parce qu'il ne s'installe pas sur ma debian cross sarge/etch. Donc je regarderais ça plus tard mais le marque-page est déjà enregistré.

    J'ai regardé le man de astyle aussi, car il est dispo sous debian via les packages classiques. Il a l'air pas mal, je vais essayer de mettre ça en application.

    Sinon, merci à tous pour vos infos, que ce soit pour les ide, pour les progs de mise en forme ou pour les explications concernant les commentaires et les accolades, vous m'avez retirer une grosse épine du pied.

    Et puis encore merci parce qu'on ne le dit jamais assez

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

Discussions similaires

  1. [CR] mise en forme d'un champs texte en fonction des données
    Par niPrM dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 29/06/2004, 12h57
  2. [CR 9] Mise en forme non affichée when null
    Par Yorglaa dans le forum Formules
    Réponses: 2
    Dernier message: 28/06/2004, 18h27
  3. mise en forme rapide d'applets
    Par appletj dans le forum Applets
    Réponses: 11
    Dernier message: 03/06/2004, 14h28
  4. Mise en forme HTML
    Par Regis.C dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 25/04/2004, 12h55
  5. Mise en forme fichier avant Import
    Par jeff37 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/04/2004, 16h16

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