typedef union
{
struct
{
unsigned char x0, y0, x1, y1;
} xy;
unsigned long l;
} SCR_RECT;
Je lis:
SCR_RECT est une
union (c'est-à-dire qu'il y a 2 déclarations possibles).
Soit une structure:
struct
{
unsigned char x0, y0, x1, y1;
} xy;
C'est une structure de 4 octets.
Soit un entier long non signé:
unsigned long l;
C'est un nombre de 4 octets.
Il faut donc mettre 4
dc.b. Si tu mets 4
dc.w, tu déclares 8 octets.
En effet, il ne faut pas confondre
SCR_RECT avec
WIN_RECT qui est défini de la manière suivante:
typedef struct
{
short x0, y0, x1, y1;
} WIN_RECT;
et qui fait bien 8 octets, soit 4
dc.w.
Aussi,
SCR_RECT et
WIN_RECT ne sont
pas définies comme
x,y,largeur,hauteur, mais comme
x1,y1,x2,y2, avec des coordonnées qui commencent à
0, donc il
faut enlever 1 pour les coordonnées finales, sinon sur TI-92+, tu risques de détruire la mémoire en dehors de l'écran! Pour ne pas détruire la barre d'état, il faut enlever
9, pas 8.
J'espère ne pas avoir paru offensif. J'ai juste voulu rectifier les informations incorrectes.