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 :

C++ et norme ANSI


Sujet :

C++

Vue hybride

LinuxUser C++ et norme ANSI 05/09/2013, 09h49
Arzar Le C++ est normalisé sous... 05/09/2013, 11h00
oodini Tout cela est assez bien... 05/09/2013, 11h09
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut C++ et norme ANSI
    Bonjour,

    J'ai du mal à comprendre si la norme ANSI est adoptée "de base" par les compilateurs "modernes" d'aujourd'hui et plus précisement par GCC.

    Car si j'ai bien compris, à partir de 1998 (je suis pas sûr de la date), ISO C++ a intégré la norme ANSI.
    Ainsi, si je compile avec GCC, suis-je par default en ANSI-C++ (ou ISO/ANSI-C++) ?
    Si oui, pourquoi existe-t-il des flags pour tels que std=c++98 -pedantic, surtout que par default c'est le flag std=gnu++98 qui est utilisé.

    Je m'embrouille et n'y vois pas très clair.

    D'où les questions suivantes:

    1. Comment s'avoir si son code respecte la norme ANSI ou non? (faut-il mettre le flag ou pas)
    2. Que préconise ou spécifie a la norme ANSI au juste (y a un document payant qui décrit ça je crois, à voir)
    3. Et par default, quel impact à le flag std=gnu++98 ?

    Merci de votre aide.

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Le C++ est normalisé sous norme ISO, ce qui englobe automatiquement la norme ANSI. (ISO = comité de norme internationale, ANSI == norme américaine)

    Si je ne dis pas de bêtise, on entends souvent le terme "ANSI C" car historiquement le C a été normalisé par le comité ANSI (donc américain) puis plus tard adopté comme standard international (ISO). Mais entre-temps les gens ont pris l'habitude d'utiliser le terme "ANSI C" et c'est resté dans les mœurs. On trouve des traces de cette époque par exemple dans GCC qui propose encore l'option -ansi. Il vaut mieux parler de ISO C/ ISO C++ de nos jours.

    std=gnu++98
    Compilation en mode C++98 + activation des extensions GNU.

    std=c++98
    Compilation en mode C++98 sans les extensions GNU

    -pedantic
    Cette option force une interprétation extrêmement strict du standard. Tout code non conforme est sanctionné par une erreur de compilation. En pratique je n'ai pas l'impression que beaucoup de gens utilisent -pedantic car c'est une option vraiment casse-bonbon parfois (trop stricte)

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Tout cela est assez bien expliqué le manuel de gcc.

Discussions similaires

  1. Langage C et normes ANSI
    Par silencio dans le forum Débuter
    Réponses: 10
    Dernier message: 13/10/2008, 16h28
  2. Vends ou échange livre "Le langage C : norme ANSI"
    Par jerome71300 dans le forum Lectures
    Réponses: 0
    Dernier message: 14/02/2008, 13h49
  3. Réponses: 11
    Dernier message: 01/07/2007, 16h16
  4. Verifier code C à la norme ANSI C90
    Par Manu-fr-tlse dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 27/09/2006, 12h28

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