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 :

Probleme de transtypage


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 74
    Points : 46
    Points
    46
    Par défaut Probleme de transtypage
    Bonsoir,
    J'ai une structure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct Data_Accelerometre
    {
        int16_t x;
        int16_t y;
        int16_t z;
    };
    une variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Data_Accelerometre MMA;
    …et enfin une fonction importée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int send_all ( char * data,
    		   int 	length 
    	          )
    Je voudrais écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    send_all(MMA,sizeof(MMA));
    Évidemment, cela bloque car MMA n'est pas du type char*.
    Comment puis-je écrire cela pour que cela passe la compilation ?

    J'ai écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    send_all((char *)&MMA,sizeof(MMA));
    … mais je ne suis vraiment pas sûr de moi.
    Merci de votre avis.

    Michel.

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Bonjour,
    tu fais bien de douter car on ne doit pas faire de cast à la légère.
    Cependant ton code est correct. Le cast nécessaire ici est dû au fait que l'interface de la fonction send_all() n'est pas judicieuse.
    Il aurait fallu int send_all( const void* data , size_t length );Et pour l'appeler tu ferais : int send_all( &MMA , sizeof(MMA) );et le compilateur qui dirai ok sans le moindre warning.
    Ton code est donc ce que tu peux faire de mieux avec une interface aussi mal spécifiée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    Merci pour cette réponse rapide.
    Malheureusement c'est du code pour une connexion TCP entre une carte LPC1768 et un PC, et je ne suis pas maitre des librairies déjà écrite pour la carte, sinon j'aurais effectivement fais ce que tu dis.
    Encore merci, et je marque en résolu.

    Michel

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

Discussions similaires

  1. [Système/Fichiers/API] Probleme de transtypage lors de l'utilisation de WMI
    Par blondelle dans le forum C++Builder
    Réponses: 16
    Dernier message: 30/07/2012, 18h45
  2. probleme de transtypage
    Par s2pawn dans le forum Débuter
    Réponses: 2
    Dernier message: 22/11/2009, 10h46
  3. probleme de transtypage
    Par kanebody dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 04/09/2009, 01h38
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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