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 :

[define] création d'un symbole pointeur


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Billets dans le blog
    15
    Par défaut [define] création d'un symbole pointeur
    Bonjour ,

    J'ai relevé sur un tutoriel web (dédié à la programmation sur console DS), l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define DISPLAY_CR  (*(volatile unsigned int *) 0x4000000) 
    DISPLAY_CR = somevalue;
    Ce qui m'intrigue, c'est la double imbrication de la valeur dans des parenthèses, de plus avec les deux étoiles de pointeur.

    J'ai alors consulté mon livre de référence sur le C : BestOf Langage C de Claude Delannoy. Malheureusement, le chapitre sur le préprocesseur ne m'a pas aidé à en comprendre davantage.

    Je voudrais donc savoir, par quel "artifice" (par quelle règle), cette déclaration fait de DISPLAY_CR, une constante pointeur, afin de mieux en comprendre le mécanisme et l'adapter au besoin.

    Je vous remercie d'avance.

    P.S Ne me parlez pas de volatile : je sais déjà ce que c'est

  2. #2
    Membre émérite
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Billets dans le blog
    15
    Par défaut Voici la réponse obtenue sur un forum anglophone
    Rebonjour ,

    Finalement j'ai pu avoir la réponse sur le forum StackOverflow :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (volatile unsigned int *) 0x40000
    Pour convertir la valeur en un pointeur sur cette adresse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *(volatile unsigned int *) 0x40000
    Pour convertir le pointeur en une LValue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (*(volatile unsigned int *) 0x40000)
    Pour éviter tout problème d'interprétation de la macro

    Autrement dit, les deux lignes du précédent post donneront à peu près :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    volatile unsigned int *p = 0x40000
    *p = someValue

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

Discussions similaires

  1. Pb de création de symbole Flash CS3
    Par miniloutre dans le forum Flash
    Réponses: 0
    Dernier message: 17/11/2008, 16h49
  2. Réponses: 19
    Dernier message: 20/02/2008, 12h03
  3. création de pointeur en VB
    Par tyarcaouen dans le forum VB.NET
    Réponses: 6
    Dernier message: 19/05/2007, 15h06
  4. création d'un pointeur
    Par morrison29 dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 15/11/2006, 17h57
  5. #define sizeof(pointeur)
    Par le mage tophinus dans le forum C
    Réponses: 6
    Dernier message: 23/01/2006, 20h08

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