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 :

unsigned long long


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 47
    Points
    47
    Par défaut unsigned long long
    Bonjour a tous
    (je suis toujours dans mes problemes de compilation lors de la migration de mon soft Solaris--> Linux RedHat).

    J'ai cette erreur à la compilation, dans l'un de mes sources :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    warning: integer constant is too large forlong’ t
    dans cette fonction, j'ai deux types qui, définis comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #define C_CL_DEF_TIMEOUT 0xffffffffffffffff 
    unsigned long long   d_timeout;
     
    (...quelque part dans le code, on a :)
    d_timeout =  C_CL_DEF_TIMEOUT;
    j'ai tenté plusieurs trucs mais rien n'y fait, ce C_CL_DEF_TIMEOUT me semble gigantesque et je ne sais pas comment caler les deux variables ...

    Avez-vous une idee ??

    Ah, j'oubliais, voici ce que donne le uname -a de ma machine Linux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Linux localhost.localdomain 2.6.18-164.el5 #1 SMP Thu Sep 3 03:33:56 EDT 2009 i686 i686 i386 GNU/Linux
    Merci par avance
    pepito31

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Points : 538
    Points
    538
    Par défaut
    tu peux montrer où est définie ta variable C_CL_DEF_TIMEOUT? Elle correspond à quoi?
    "L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein
    ----------------------
    T.O.A.O 6-MarViN

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 47
    Points
    47
    Par défaut
    La variable C_CL_DEF_TIMEOUT est définie dans le source, au debut.

    Elle correspond a la valeur maximale d'un temps en millisecondes (caracterisé par d_timeout).

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Ton define n'est pas bon. Il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define C_CL_DEF_TIMEOUT 0xffffffffffffffffULL
    Note le "ULL" à la fin, qui indique que la constante est un unsigned long long.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 47
    Points
    47
    Par défaut
    Arff j'avais tout essayé sauf ca !
    Disons que je ne savais pas qu'on pouvait ajouter le ULL à un #define.

    Alors, j'avais defini le parametre comme
    unsigned long long C_CL_DEF_TIMEOUT=0xffffffffffffffffULL; (mais ca ne fonctionnait pas. Tiens, d'ailleurs, pourquoi ?!!)

    Merci en tout cas matafan !

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Qau,
    Citation Envoyé par pepito31 Voir le message
    Arff j'avais tout essayé sauf ca !
    Disons que je ne savais pas qu'on pouvait ajouter le ULL à un #define.

    Alors, j'avais defini le parametre comme
    unsigned long long C_CL_DEF_TIMEOUT=0xffffffffffffffffULL; (mais ca ne fonctionnait pas. Tiens, d'ailleurs, pourquoi ?!!)

    Merci en tout cas matafan !
    Parce qu'il y a un ;, qui fait partie du #define, et qui comme le reste est inclus dans le code, et il n'y a sans doute pas à une place correcte.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 33
    Points
    33
    Par défaut
    Regarde le header stdint.h tu trouveras ton bonheur. (en plus c'est standard C99). Tu auras des types et des constantes portables d'un système à un autre.

    Sinon la solution pour remplir le bon nombre de F, il faut penser au complément à 2!

    unsigned long long max = (unsigned long long) -1;

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 47
    Points
    47
    Par défaut
    Merci a tous pour vos reponses !
    J'ai donc utilisé la methode "matafan" et ca fonctionne tres bien (en totu cas, plus de warning a la compil)

    Merci a vous !
    pepito31

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/04/2009, 14h26
  2. Problème avec unsigned long long
    Par spiner900 dans le forum Débuter
    Réponses: 2
    Dernier message: 19/02/2009, 20h37
  3. Réponses: 1
    Dernier message: 07/05/2007, 20h12
  4. unsigned long long int
    Par salseropom dans le forum C
    Réponses: 10
    Dernier message: 21/12/2006, 22h43
  5. Réponses: 6
    Dernier message: 06/12/2005, 16h54

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