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 :

Comment savoir qu'une fonction est standard ?


Sujet :

C

  1. #1
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut Comment savoir qu'une fonction est standard ?
    Comment peut-on savoir si une fonction est standard ?
    Je suis sous linux. Il faut quoi, dans la partie CONFORMING TO, pour savoir que c'est portable ?

    Question bonus : standard <=> portable ?

  2. #2
    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 : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut Re: Comment savoir qu'une fonction est standard ?
    Citation Envoyé par D[r
    eadLock]Comment peut-on savoir si une fonction est standard ?
    Je suis sous linux. Il faut quoi, dans la partie CONFORMING TO, pour savoir que c'est portable ?

    Question bonus : standard <=> portable ?
    Récupérer la norme ANSI et regarder si ce que tu veux faire est dedans.

    Concernant la question bonus, la réponse pratique devrait être oui, malheureusement certains compilateurs ne suivent pas a la lettre la norme (ou suive d'ancienne norme) et du coup ce n'est pas totalement vrai

  3. #3
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut Re: Comment savoir qu'une fonction est standard ?
    Citation Envoyé par gl

    Récupérer la norme ANSI et regarder si ce que tu veux faire est dedans.
    C'est possible de l'avoir sur le Net gratuitement ?

    Nas'

  4. #4
    Membre averti

    Inscrit en
    Juin 2002
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 97
    Points : 307
    Points
    307
    Par défaut
    Il faut quoi, dans la partie CONFORMING TO, pour savoir que c'est portable ?
    ANSI ?

    Question bonus : standard <=> portable ?
    Oui...
    ...sauf sur de vieux compilateurs pas à jour avec la norme.
    ...sauf pour certains caprices.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int tab[12]= {};
    for(int i=0 ; ;)
    C'est standard, mais Visual C++ n'en veux pas.
    "J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone."-Bjarne Stroustrup
    www.stroustrup.com

  5. #5
    Membre émérite

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Points : 2 717
    Points
    2 717
    Par défaut
    Deux solutions :
    * Lire une bonne doc qui informe sur les standard. Ex: Les manpages Linux
    http://www.linux-france.org/article/man-fr/ (chapître 3)

    Exemple: Fonction cos
    SYNOPSIS
    #include &ltmath.h>

    double cos (double x);
    CONFORMITÉ
    SVID 3, POSIX, BSD 4.3, ISO 9899
    Après faut savoir lire tous ces trucs ! Pour moi "POSIX" ça veut dire "ok", et "ISO 9899" ça veut aussi dire "ok".

    * Utilise un compilo qui respecte les standards. Exemple: GCC
    http://gcc.gnu.org/

    Tu rajoutes les paramètres "-ansi" (ANSI) voir "-pedantic" (SUPER ANSI). Si ton code passe (pas d'avertissements) avec "-pedantic", les problèmes de portages seront très très limités. Bien sûr, on n'oublie pas d'activer tous les avertissements "-Wall", même si c'est des fois lourd. Surtout si ça n'a pas été activé dès la première compilation.

    @+ Haypo

  6. #6
    Membre émérite

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Points : 2 717
    Points
    2 717
    Par défaut
    Plus d'info sur GCC dans sa doc :
    * Options de compilation pour respecter les standards
    http://gcc.gnu.org/onlinedocs/gcc-3....t-Options.html
    * Informations sur les standards respectés par GCC
    http://gcc.gnu.org/onlinedocs/gcc-3....Standards.html

    @+ Haypo

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/03/2011, 16h45
  2. [XSLT] Comment savoir si une fonction est "compatible" PHP 5 ?
    Par souffle56 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 25/06/2010, 20h26
  3. Comment savoir si une connexion est deja ouverte?
    Par ghor_bey dans le forum Web & réseau
    Réponses: 3
    Dernier message: 29/07/2005, 15h17
  4. Réponses: 6
    Dernier message: 01/07/2005, 15h06
  5. Comment savoir si une variable est initialisée ?
    Par nabix dans le forum Général Python
    Réponses: 8
    Dernier message: 10/03/2005, 15h12

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