Paramètre de fonction et cast

Résolu
jasmine27 -  
 jasmine27 -
Bonjour à tous,

Je sais que ma question peut un peu paraître idiote, mais j'ai besoin de m'éclaircir les idées sur ce point s'il vous plait:

Supposons que j'ai une fonction : void fonction ( ushort x)

et que j'ai ce scénario :

uint x;
ubyte y;
y=(ubyte)x;

Est ce que cette instruction sera exécutée, voir même compilée ?

fonction(y);

Si je pose cette question, c'est en allant du principe que même si y est un ubyte, il peut être validé comme paramètre puisqu'il est contenu dans le type ushort.

Merci d'avance :)

6 réponses

  1. jasmine27
     
    Si si ces types existent en programmation bas niveau, ils veulent dire unsigned type ; par exemple ushort == unsigned short :)
    0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Les seuls types qui existent sont ceux définis par le standard.
    Tous les autres ne sont pas portables et dépendent de la plateforme.

    Donc non, ça n'existe pas.

    Sinon, pour répondre à ta question, oui cela fonctionnera ;-).
    0
  3. jasmine27
     
    Ces types de variables sont utilisés pour la programmation en C orientée électronique :)

    Sinon voilà grâce à toi je suis enfin sur les bonnes rails :)

    Merci beaucoup :)
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Il n'y a pas de standard orienté électronique. Il n'y a qu'un seul standard (l'ISO) : C89/90, C99.
    Tous les autres sont définis lors de la compilation. D'ailleurs, si tu compiles avec l'option -E (dans gcc), tu verras bien qu'il y a un typedef quelque part vers unsigned char pour le cas du uchar :-).

    Cdlt,
    0
  6. jasmine27
     
    Je vois :)

    En tout cas, pour programmer mon microcontrolleur, j'utilise ces types. Peut être justement, que si je faisais un tour dans les .h des includes, je trouverai un typedef par exemple quelque part.

    Merci encore une fois :)
    0