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 :

Liste descriptifs fonctions/obsolescence


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 57
    Par défaut Liste descriptifs fonctions/obsolescence
    Bonjour a tous.

    Suite a la lecture d'un autre fil sur la manipulation de chaines, il y est mentionne que telle ou telle fonction est obsolete et il y est propose aussi d'autres fonctions.

    Y-a-t-il un document synthetique qui recense ces nouvelles fonctions ainsi que leurs descriptifs et eventuellement leur etat d'obsolescence par rapport a telle ou telle norme ?

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par mailaka Voir le message
    Bonjour a tous.

    Suite a la lecture d'un autre fil sur la manipulation de chaines, il y est mentionne que telle ou telle fonction est obsolete et il y est propose aussi d'autres fonctions.

    Y-a-t-il un document synthetique qui recense ces nouvelles fonctions ainsi que leurs descriptifs et eventuellement leur etat d'obsolescence par rapport a telle ou telle norme ?
    Le meilleur document pour cela est la norme elle-même.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 57
    Par défaut
    Et bien, je te remercie !

    Au fait, les ato* ne sont pas explicitement rendues obsoletes et si j'ai bien compris, les strto* rajoutent en plus la gestion des erreurs.

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par mailaka Voir le message
    Et bien, je te remercie !

    Au fait, les ato* ne sont pas explicitement rendues obsoletes et si j'ai bien compris, les strto* rajoutent en plus la gestion des erreurs.
    En effet, la norme dit:
    Citation Envoyé par ISO/IEC 9899:1999, §7.20.1.2
    Except for the behavior on error, they are equivalent to
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    atoi: (int)strtol(nptr, (char **)NULL, 10)
    atol: strtol(nptr, (char **)NULL, 10)
    atoll: strtoll(nptr, (char **)NULL, 10)
    et
    Citation Envoyé par ISO/IEC 9899:1999, §7.20.1.1
    The atof function converts the initial portion of the string pointed to by nptr to double representation. Except for the behavior on error, it is equivalent to
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strtod(nptr, (char **)NULL)
    Les strto*() permettent de gérer les erreurs à l'aide du 2e paramètre. Les ato*() ne sont pas officiellement obsolètes, mais il est généralement recommandé d'utiliser strto*() en exploitant les possibilités offertes en matière de gestion des erreurs.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 57
    Par défaut
    Que pourrait-on mettre par exemple en second parametre ?? A priori, ce n'est pas une chaine de caractere ...

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par mailaka Voir le message
    Que pourrait-on mettre par exemple en second parametre ?? A priori, ce n'est pas une chaine de caractere ...
    Voici un exemple avec une chaine valide:

    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
    35
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
        char nombre1[] = "3.1452";
        char nombre2[] = "3.1452ABC ";
        double d;
        char *pend = NULL;
     
        printf("nombre1: ");
     
        d = strtod(nombre1, &pend);
        if (*pend == 0)
        {
            puts("OK");
        }
        else
        {
            puts("KO");
        }
     
        printf("nombre2: ");
     
        d = strtod(nombre2, &pend);
        if (*pend == 0)
        {
            puts("OK");
        }
        else
        {
            puts("KO");
        }
        return 0;
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Sachant que ce second paramètre est une faille de const-correctness, puisque la fonction prend un pointeur const en premier paramètre et retourne un pointeur non-const sur la même chaîne.
    C'est également le cas des fonctions comme strchr()...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Sachant que ce second paramètre est une faille de const-correctness, puisque la fonction prend un pointeur const en premier paramètre et retourne un pointeur non-const sur la même chaîne.
    C'est également le cas des fonctions comme strchr()...
    Oui, on se sert en général de ce pointeur uniquement en lecture. Il y a effectivement un problème de const-correctness.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/08/2005, 11h16
  2. [interbase6]liste en fonction d'un dbgrid
    Par macadam314 dans le forum Bases de données
    Réponses: 12
    Dernier message: 01/03/2005, 09h43
  3. Liste de Fonction DirectX
    Par naejg dans le forum DirectX
    Réponses: 6
    Dernier message: 30/03/2004, 15h12
  4. Liste des fonctions
    Par Mookie dans le forum C
    Réponses: 2
    Dernier message: 22/09/2003, 16h42
  5. [postgreSQL] liste de fonctions
    Par Dra_Gun dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2003, 16h13

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