Paramètre de fonction et cast [Résolu/Fermé]

Signaler
-
 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 :)

7 réponses

Messages postés
744
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
30 juillet 2015
97
Bonjour,

Ces types n'existent pas : http://en.wikipedia.org/wiki/C_data_types

veux tu dire unsigned short et autres ?
Si si ces types existent en programmation bas niveau, ils veulent dire unsigned type ; par exemple ushort == unsigned short :)
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1620
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 ;-).
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 :)
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1620
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,
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 :)