#define - C - Programmation
Marsh Posté le 08-02-2006 à 10:09:20
cé a dir
que ta déclaré une constante qui à la valeur évaluer entre parentése
mais cé pas trés claire
Marsh Posté le 08-02-2006 à 10:45:35
nalvon a écrit : en cherchant des informations sur le FAT12(File Allocation Table), j´ai trouvé un code dont je ne comprends pas la ligne suivante:
|
Définit une macro nommée READ2 avec un parametre x qui doit être un tableau de char.
effectue :
- memcpy (&c2, x, sizeof(x)) : copie de x dans c2. Qu'est-ce que c2 ? Probablement une variable de type uint16_t [C99] ?
- c2 = *(uint16_t*) : memcpy retourne l'adresse de c2. Le contenu de cette adresse est lu (en 16 bits) et le résultat est stocké dans c2.
Grace à l'opérateur ',' (comma operator), la valeur de c2 est retournée.
C'est assez tordu comme macro...
Marsh Posté le 08-02-2006 à 18:33:08
Emmanuel Delahaye a écrit : Définit une macro nommée READ2 avec un parametre x qui doit être un tableau de char. |
Merci Emmanuel .
Marsh Posté le 08-02-2006 à 05:39:26
salut,
en cherchant des informations sur le FAT12(File Allocation Table), j´ai trouvé un code dont je ne
comprends pas la ligne suivante:
#define READ2(x) (c2=*(uint16_t*)memcpy(&c2,x,sizeof(x)),c2)
Mon Probleme est de savoir le resultat de l´evaluation de cette expression .
Une aide serait la bienvenue.
Merci.