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

Affichage des résultats du sondage: Quels types utilisez vous ?

Votants
9. Vous ne pouvez pas participer à ce sondage.
  • char, short, int, ...

    4 44,44%
  • int8_t, int16_t, int32_t, ...

    0 0%
  • Les deux.

    5 55,56%
Langage C++ Discussion :

Nom des types de variables (char vs int8_t), qu'utilisez-vous ?


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Par défaut Nom des types de variables (char vs int8_t), qu'utilisez-vous ?
    Salut à tous,

    Cela fait quelques années que je programme en C++ et je trouve de plus en plus "illogique" d'utiliser les noms de types de bases comme "char" ou "unsigned long long" à la place de "int8_t" ou "uint64_t" (dans la mesure du possible, j'ai lu qu'il valait mieux utiliser "char" pour des std::string par exemple).
    Je me souviens de mes premiers pas dans le langage et je pense que j'aurais préféré avoir des explications avec des intN_t plutôt qu'avec des char/short/int/long long qui ne sont pas vraiment claire pour le coup.

    Utilisez-vous uniquement l'un, l'autre ou les deux ?
    Et pour quelle(s) raison(s) ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 152
    Billets dans le blog
    4
    Par défaut
    Salut,

    dans la très grande majorité du code, j'utilise les types "simples" : char, int, unsigned int, float, std::string. Avec ça, je couvre ~95% de ce que je souhaite faire.
    Quand je fais du code bas niveau, moteur, ou avec des restrictions mémoires plus strictes / nécessités de tailles fixes, alors j'utilise mes propres allias int8, int16, etc..

    Si tu veux utiliser int8_t et consors, je te conseillerai de faire des typedef dessus, parce qu'il me semble qu'ils dépendent de la plateforme.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Les types scalaires de taille fixe sont utiles dans le cas où on souhaite fixer la taille des données. Exemple : dans un structure de donnée publique.

    Les types scalaire de taille non fixe (char, int...) sont utile lorsque fixer la taille des données n'a pas d'intérêt sémantique immédiat. Exemple : quel est l'intérêt de connaître sizeof(std::size_t) ?
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    - normalement j'utilise char, wchar_t pour les caracteres, signed/unsigned char, short, int, long long pour les entiers.

    - uintptr_t, intmax_t et uintmax_t ont leur utilite intrinseque.

    - les types a taille fixe sont utiles quand ils correspondent a des contraintes l'exterieures. (Cependant, attention au boutisme et au padding qui font que beaucoup d'utilisation n'apportent pas la portabilite attentue). A mon sens, pour des contraintes internes, seuls les non-signes quand il faut un comportement cyclique a une valeur fixee le sont.

    - les types a taille minimale (intfastXXX, instleatXXX) sont utiles quand on a des contraintes internes.

    - tout ces types sont des typedefs, attention aux surcharges

  5. #5
    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
    Ne pas oublier que l'implémentation est libre de définir char comme signed char ou unsigned char...

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Si tu veux utiliser int8_t et consors, je te conseillerai de faire des typedef dessus, parce qu'il me semble qu'ils dépendent de la plateforme.

    (u)intXX_t sont dans la norme C99 ( stdint.h qu'on peut réutiliser en C++) ainsi que dans C++11.

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Ils ne sont pas garantis par la norme. Ils y sont listés, mais pas garantis.
    Sinon, j'utilise bien plus souvent les uint*_t que les int*_t pour les interfaces.
    Et beaucoup les size_t aussi.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    Ils ne sont pas garantis par la norme. Ils y sont listés, mais pas garantis.
    Les variantes 8, 16, 32, 64 de _least_ et _fast_ sont garanties exister (du moins en C99, j'ai pas verifie si la garantie avait ete conservee en C++).

    Et beaucoup les size_t aussi
    Il ne fait pas partie de la serie (il date de C90).

  9. #9
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Seuls les least et fast sont garantis.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. [Turbo Pascal] Créer des types de variables numériques en Turbo Pascal
    Par INDEPTEKNO dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 05/07/2008, 22h38
  2. Comparer des type de variables
    Par Zachs dans le forum VB.NET
    Réponses: 5
    Dernier message: 19/03/2008, 08h42
  3. Extension des Types de Données(CHAR,CLOB)
    Par blackstreet dans le forum Oracle
    Réponses: 9
    Dernier message: 28/04/2006, 22h39
  4. Gestion des types de variables en Assembleur
    Par AsmCode dans le forum Assembleur
    Réponses: 13
    Dernier message: 17/10/2005, 20h34
  5. Equivalent C -> Delphi des types de variables
    Par jobe dans le forum Langage
    Réponses: 3
    Dernier message: 13/09/2005, 23h21

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