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 :

Utilisation d'un DEFINE en BYTE*


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par défaut Utilisation d'un DEFINE en BYTE*
    Bonjour,

    j'ai le define suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define BROADCAST_ADDRESS		"127"
    si je veux l'utiliser dans une méthode du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void methode(BYTE* adresse)
    si je ne cast pas mon define, j'ai l'erreur suivante lors de la compil :
    error C2664: 'methode' : impossible de convertir le paramètre 1 de 'const char [4]' en 'const BYTE *'

    quelle est le meilleur appel à ma méthode ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    methode ((BYTE*)BROADCAST_ADDRESS)
    ou
    methode (reinterpret_cast<BYTE*>(BROADCAST_ADDRESS))
    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 474
    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 474
    Par défaut
    Bonjour,

    … devrait résoudre ton problème dans un premier temps. Il faudra voir ensuite à réécrire toute l'affaire de façon un peu plus propre.

  3. #3
    Membre chevronné Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par défaut
    que dois je faire de ce ???

    Le BYTE est déjà défini en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef unsigned char BYTE;

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Le BYTE est déjà défini en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef unsigned char BYTE;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    quelle est le meilleur appel à ma méthode ?
    Dans ce cas, juste ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    methode(BROADCAST_ADDRESS);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    methode (reinterpret_cast<BYTE*>(BROADCAST_ADDRESS))
    Où as-tu appris le C ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 59
    Par défaut
    +1 jeroman

    si tu fais un reinterpret_cast<BYTE*> tu vire au c++...

    ici tu demandes au compilateur de convertir implicitement un tableau en dur (i.e "127") vers un pointeur sur BYTE (BYTE *) le probleme viens de là, ton compilateur n'aime pas ca. Tu n'as pas le choix, tu dois caster pour lui faire comprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    methode((BYTE *)BROADCAST_ADDRESS)

  6. #6
    Membre chevronné Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par défaut
    Citation Envoyé par Vodsky Voir le message
    +1 jeroman

    si tu fais un reinterpret_cast<BYTE*> tu vire au c++...

    ici tu demandes au compilateur de convertir implicitement un tableau en dur (i.e "127") vers un pointeur sur BYTE (BYTE *) le probleme viens de là, ton compilateur n'aime pas ca. Tu n'as pas le choix, tu dois caster pour lui faire comprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    methode((BYTE *)BROADCAST_ADDRESS)
    OK, merci, je vais faire comme ça.

  7. #7
    Membre chevronné Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par défaut
    Citation Envoyé par jeroman Voir le message
    Où as-tu appris le C ?
    Désolé, je mélange un peu C et C++

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/07/2015, 19h34
  2. Réponses: 6
    Dernier message: 09/06/2013, 18h08
  3. Effet de bord lors de l'utilisation d'un defined
    Par lacryl dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2008, 14h38
  4. Réponses: 4
    Dernier message: 15/02/2006, 17h24
  5. Utilisation de DS (define space) || definir une variable ?
    Par TabrisLeFol dans le forum Assembleur
    Réponses: 3
    Dernier message: 02/02/2006, 18h39

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