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 :

La taille du long


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Par défaut La taille du long
    Bonjour, petit soucis, quand je regarde la taille du:
    long - int - long int, j'ai toujours comme résultat 4, c'est normal ?

    Moi j'aurai besoin de 6 octets, je fais comment ?

    merci d'avance

    edit: ah non y a pas de soucis, je prends 'long long', mais ça sera codé comme un int ?

  2. #2
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Il sera codé comme un long long int, c'est à dire sur 8 octets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
    int main()
    {
        long long int toto;
        printf("sizeof(toto) = %u\n", sizeof(toto));
        return 0;
    }
    A+

    Pfeuh

  3. #3
    Membre éclairé Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Par défaut
    ok merci

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    On l'a dit plusieurs fois ces temps-ci : la taille dépend de l'architecture (et du compilateur ?), donc à vérifier dans ton cas.

    Si tu utilises GCC, tu peux lire http://gcc.gnu.org/onlinedocs/gcc/Long-Long.html qui te garantit que long long est d'au moins 64 bits

  5. #5
    Membre éclairé Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Par défaut
    D'accord

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 478
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Si tu utilises GCC, tu peux lire http://gcc.gnu.org/onlinedocs/gcc/Long-Long.html qui te garantit que long long est d'au moins 64 bits
    En fait, la norme C elle-même définit des tailles minimum pour ses entiers,

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    5.2.4.2.1 Sizes of integer types <limits.h>
    
    […]
    
    — number of bits for smallest object that is not a bit-field (byte)
        CHAR_BIT                                          8
    — minimum value for an object of type signed char
                                                     -127 // −(27 − 1)
        SCHAR_MIN
    — maximum value for an object of type signed char
                                                     +127 // 27 − 1
        SCHAR_MAX
    — maximum value for an object of type unsigned char
                                                       255 // 28 − 1
        UCHAR_MAX
    — minimum value for an object of type char
                                                 see below
        CHAR_MIN
    — maximum value for an object of type char
                                                 see below
        CHAR_MAX
    — maximum number of bytes in a multibyte character, for any supported locale
        MB_LEN_MAX                                        1
    — minimum value for an object of type short int
                                                  -32767 // −(215 − 1)
        SHRT_MIN
    — maximum value for an object of type short int
                                                  +32767 // 215 − 1
        SHRT_MAX
    — maximum value for an object of type unsigned short int
                                                   65535 // 216 − 1
        USHRT_MAX
    — minimum value for an object of type int
                                                  -32767 // −(215 − 1)
        INT_MIN
    — maximum value for an object of type int
                                                  +32767 // 215 − 1
        INT_MAX
    — maximum value for an object of type unsigned int
                                                   65535 // 216 − 1
        UINT_MAX
    — minimum value for an object of type long int
                                           -2147483647 // −(231 − 1)
        LONG_MIN
    — maximum value for an object of type long int
                                           +2147483647 // 231 − 1
        LONG_MAX
    — maximum value for an object of type unsigned long int
                                            4294967295 // 232 − 1
        ULONG_MAX
    — minimum value for an object of type long long int
                         -9223372036854775807 // −(263 − 1)
      LLONG_MIN
    — maximum value for an object of type long long int
                         +9223372036854775807 // 263 − 1
      LLONG_MAX
    — maximum value for an object of type unsigned long long int
                         18446744073709551615 // 264 − 1
      ULLONG_MAX

    Donc, « long long » sera toujours long d'au moins 64 bits. Par contre, rien n'empêche ce type d'être plus long, et rien n'empêche le compilateur de stocker par exemple tous ses entiers sur 64 bits, char compris, si ça lui chante.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/12/2011, 15h25
  2. asp:Label - limiter la taille d'un texte trop long
    Par baeriswyl dans le forum ASP.NET
    Réponses: 1
    Dernier message: 10/02/2010, 23h26
  3. Réponses: 8
    Dernier message: 30/03/2009, 12h34
  4. Taille Champ numérique Entier Long
    Par doczen dans le forum IHM
    Réponses: 3
    Dernier message: 27/12/2007, 20h23
  5. taille de tableau et mot trop long
    Par eyango dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/06/2007, 11h33

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