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 :

plusieurs return dans une fonction?


Sujet :

C

  1. #21
    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
    Je trouve que ça va quand même plus vite d'utiliser directement un size_t.
    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.

  2. #22
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 827
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dapounet Voir le message
    Ça dépend d'à quoi sert le tableau. Si il contient des trucs sur les mois de l'année
    Ben c'est évident. Si la taille est définitivement figée dans un ensemble immuable on va un peu optimiser la taille de l'indice. T'étais vraiment obligé de venir chercher un exemple aussi nul pour me prouver que size_t est inutile ??? size_t est un "outi"l qui te "permet de". Si tu penses que tu n'en as pas besoin parce que TOUS tes tableaux que t'as jamais programmés et que tu programmeras jamais ne dépasseront jamais le chiffre 12, ben autant rester à l'unsigned char dans tes indices.

    Citation Envoyé par dapounet Voir le message
    tu crois vraiment qu'il risque un jour de contenir plus de 2^16 éléments ? Personnellement j'utilise presque tout le temps unsigned int.
    T'es totalement libre. Je répondais juste à une question (qui n'es pas de toi) qui demandait "pourquoi on dit que...". Je ne t'ai jamais dit comment programmer. Mais je remarque quand-même que t'as pensé à l'usigned ce qui dénote déjà une certaine recherche. T'aurais pu pousser cette recherche jusqu'au bout et tu serais arrivé au size_t...
    Citation Envoyé par dapounet Voir le message
    Pour le moment en mode 64 bits on n'a "que" 48 bits d'adressage. Tu te rends compte de la quantité que ça fait 2^64 ?
    Ca fait que là t'es tranquille !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #23
    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 dapounet Voir le message
    Pour le moment en mode 64 bits on n'a "que" 48 bits d'adressage.
    C'est totalement dependant de la plate-forme.


    Citation Envoyé par dapounet Voir le message
    Tu te rends compte de la quantité que ça fait 2^64 ?
    Si ce n'est qu'il n'y a aucune garantie que sur une architecture 64 bits un unsigned int fasse 64bits. Il peut tout a fait en faire seulement 16 (pour rappel, la plage garantie par la norme de unsigned int est 0 à 65535).

  4. #24
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Concernant le nombre de return par fonction, moi je dis qu'il en faut trois ; non pas deux, ni quatre, mais trois.

    - un pour faire terminer la fonction
    - un pour rendre le code joli
    - et un autre pour rendre le code lisible

    Si quelqu'un affirme le contraire, alors il ne sait pas programmer !

  5. #25
    Membre chevronné Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    T'étais vraiment obligé de venir chercher un exemple aussi nul pour me prouver que size_t est inutile ???
    J'aimerais quand même bien savoir où j'ai voulu dire que size_t est inutile et à quoi ça peut servir de l'utiliser systématiquement pour les indices puisque c'est la question. Ne me dis pas qu'on utilise à tout bout de champ des tableaux de plus de 64K...

    Citation Envoyé par gl Voir le message
    C'est totalement dependant de la plate-forme.
    Tu parles de plate-forme au sens général ou des implémentations x86-64 ?

    Citation Envoyé par gl Voir le message
    Si ce n'est qu'il n'y a aucune garantie que sur une architecture 64 bits un unsigned int fasse 64bits. Il peut tout a fait en faire seulement 16 (pour rappel, la plage garantie par la norme de unsigned int est 0 à 65535).
    En x86-64 un int fait 32 bits. Je me suis exprimé dans le désordre mais je voulais simplement dire que c'est complètement utopique de parler de tableaux de 2^64 éléments.

  6. #26
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 827
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dapounet Voir le message
    J'aimerais quand même bien savoir où j'ai voulu dire que size_t est inutile
    C'est ce que j'ai compris quand j'ai lu ceci
    Personnellement j'utilise presque tout le temps unsigned int.
    Citation Envoyé par dapounet Voir le message
    et à quoi ça peut servir de l'utiliser systématiquement pour les indices puisque c'est la question.
    Ben simplement parce que c'est un outil fait pour ça. On peut faire sans et prendre un risque, ou faire avec et n'en prendre aucun. On peut aussi faire sans "parfois" et malgré cela ne pas prendre de risque "dans ce cas précis" (comme pour les 12 mois de l'année) mais ce cas est lui-aussi assez rare...

    Citation Envoyé par dapounet Voir le message
    Ne me dis pas qu'on utilise à tout bout de champ des tableaux de plus de 64K...
    Non mais à la limite je m'en fouts. Je sais que si mon tableau dépasse 64K éléments, mon code fonctionnera toujours...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #27
    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 dapounet Voir le message
    Tu parles de plate-forme au sens général ou des implémentations x86-64 ?
    De maniere generale, la taille du bus d'adresse est totalement dependante de la plateforme.
    De fait utiliser cette justification pour choisir la taille d'un type restreint le programme a une gamme de plateforme precise et donc limite la portabilite et rends de ce fait ce programme moins evolutible (Ce qui par ailleurs n'est pas necessairement un probleme, ca depends du contexte).

    Citation Envoyé par dapounet Voir le message
    En x86-64 un int fait 32 bits. Je me suis exprimé dans le désordre mais je voulais simplement dire que c'est complètement utopique de parler de tableaux de 2^64 éléments.
    De maniere portable, un unsigned int ne permet de stocker que des valeurs comprises entre 0 à 65535, ce qui peut etre certes suffisant dans certains cas mais on atteinds vite les limites.
    Supposer que la taille sera de 32 bits limite inutilement la portabilite du programme.

  8. #28
    Membre très actif

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Par défaut
    ben c'est un bon exemple la fonction strcmp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int my_strcmp(char *a, char *b) {
      while(1) {
         if (*a != *b) return *a - *b;
         if (*a == 0) return 0;
         a++;
         b++;
      }
    }

Discussions similaires

  1. Plusieurs return dans une fonction
    Par ninikkhuet dans le forum Langage
    Réponses: 4
    Dernier message: 19/05/2010, 12h45
  2. syntaxe plusieurs instructions dans une fonction
    Par sebac dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 02/03/2010, 12h55
  3. plusieurs return dans une seule fonction?
    Par grodashe dans le forum Débuter
    Réponses: 4
    Dernier message: 01/01/2010, 17h09
  4. [AJAX] recuperer plusieurs valeurs dans une fonction
    Par tortue_22 dans le forum AJAX
    Réponses: 4
    Dernier message: 17/05/2009, 13h48
  5. valeur du return dans une "fonction"
    Par Papy214 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/12/2007, 15h53

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