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 :

Dev c++ et 64 bits


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 19
    Par défaut Dev c++ et 64 bits
    bonsoir à tous!

    Voila j'en suis toujours à développer un jeu d'échecs sous dev c++(que vous pouvez voir jouer sur WBEC et Chesswar).
    Je me suis récemment attaqué aux "hashtables" (tables de transposition) . C'est nécessaire pour arriver à un niveau correct... Las ! si j'ai bien compris , dev c++ ne compile qu'en 32 bit? Pour les hashtables , j'ai besoin de gérer les positions sur 64 bits .
    Y a t-il un moyen de compiler avec dev c++ en 64 bits ? Pour l'instant les limitations sont d'un "long" "normal" à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      printf("taille : %llu\n",0xFFFFFFFFFFFFFFLLU);
    affiche 4294967295

    Merci pour votre aide précieuse ;-)

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut,

    Quels flags de compilation? (ça doit etre affiché dans le log de compilation)

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Gio,

    Comme il s'agit de DevC++, je suppose que tu utilises gcc.

    Si c'est le cas, la version habituelle de gcc pour windows nécessite le paramètre %I64u pour afficher une variable unsigned sur 64 bits:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      printf("taille : %I64u\n",0xFFFFFFFFFFFFFFLLU);

  4. #4
    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
    Ce n'est pas "gcc pour Windows" mais "La C Run-Time Library de Microsoft", qui est utilisée même par les programmes compilés avec gcc.

    Et comme les c*$^*$^ùds de ches M$ ont décidé de faire fi des standards du C, la fonction printf() se retrouve réduite à utiliser les extensions M$ au lieu du préfixe standard pour un long long...
    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.

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par dany9 Voir le message
    Voila j'en suis toujours à développer un jeu d'échecs sous dev c++(que vous pouvez voir jouer sur WBEC et Chesswar).
    Je me suis récemment attaqué aux "hashtables" (tables de transposition) . C'est nécessaire pour arriver à un niveau correct... Las ! si j'ai bien compris , dev c++ ne compile qu'en 32 bit? Pour les hashtables , j'ai besoin de gérer les positions sur 64 bits .
    Y a t-il un moyen de compiler avec dev c++ en 64 bits ? Pour l'instant les limitations sont d'un "long" "normal" à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      printf("taille : %llu\n",0xFFFFFFFFFFFFFFLLU);
    affiche 4294967295
    "ll" n'est pas pris en compte par le CRT (C-runtime) de Windows. Il faut utiliser "I64", ce qui est assez casse-pieds...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <stdio.h>
     
    #ifdef WIN32
    #define LL "I64"
    #else
    #define LL "ll"
    #endif
     
    int main (void)
    {
       printf ("taille : %" LL "u\n", 0xFFFFFFFFFFFFFFLLU);
       return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    taille : 72057594037927935
     
    Press ENTER to continue.

  6. #6
    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
    Et c'est encore plus casse-mivonks quand tu commences à bosser en unicode ou en TCHAR...
    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.

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Et c'est encore plus casse-mivonks quand tu commences à bosser en unicode ou en TCHAR...
    Frell ! Farscape-fan detected !

  8. #8
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <stdio.h>
    #include <tchar.h>
    #define LL _T("I64")
     
    int _tmain (void)
    {
       _tprintf (_T("taille : %") LL _T("u\n"), 0xFFFFFFFFFFFFFFULL);
       return 0;
    }

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 19
    Par défaut
    Bonsoir à tous !
    tout d'abord , merci pour vos réponses nombreuses et rapides , quand je disait que c'était le meilleur forum pour la prog et tout ...!
    Bon bien sur , le petit code fourni par emmanuel est impec : ça affiche bel et bien en 64 bits ... reste à savoir comment les définir ces" long long " pour qu'il soient traités en 64 bits pour ma hashtable ...
    J'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    typedef unsigned long long  U64;
    #define U64   _int64
    je ne sais pas trop quoi utiliser , en fait pour être franc , je suis un peu perdu dans les méandres du 64 bits !


    Enfin pour finir , Jars (c'est le nom de mon jeu d'échecs !) à obtenu un elo (pour ceux qui connaissent ...) de 1891
    ça donne du beaume au coeur pour continuer !
    Ci joint le lien de "Jars" , pour ceux que ça interresse



    http://wbec-ridderkerk.nl/html/details/Jars.html

    A bientot !

Discussions similaires

  1. Dev en 64 bits
    Par capitainepower dans le forum Débuter
    Réponses: 4
    Dernier message: 16/10/2013, 20h47
  2. Dev-C++ sur PC 64 bits
    Par Baillot Philippe dans le forum Dev-C++
    Réponses: 1
    Dernier message: 27/10/2007, 09h00
  3. Dev-C++ sur PC 64 bits
    Par Baillot Philippe dans le forum Dev-C++
    Réponses: 0
    Dernier message: 20/10/2007, 22h51
  4. Dev 64 bits et dual-core
    Par doudoustephane dans le forum C#
    Réponses: 4
    Dernier message: 02/03/2007, 08h35
  5. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31

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