Ok, donc l'endianness c'est bon à retenir pour les cas généraux, mais codant ti-only ici je m'en fous.
Et les BMP c'est quoi ? Réellement une structure, pas un tableau ? J'ai jamais travaillé dessus en fait ^^ Même avec la SDL, il me suffisait de fournir un fichier en entrée, et la structure qui résultait de la création du sprite était opaque.
Intéressant, je ne savais pas qu'on pouvait l'utiliser sous GCC (dans la doc, ils disent qu'ils l'ont rajouté pour être compatible avec VC justement). Mais ça reste une extension...

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboLa sémantique du C originel n'est pas assez riche pour tout un tas de choses que l'on a rencontrées à l'usage, dans les programmes, par la suite...
Et Comme les mécanismes d'extension sémantique du C n'ont pas été définis assez tôt (ou ne vont pas assez loin - #pragma est ancien mais ne va pas assez loin), c'est le bazar: #pragma incompatibles entre compilateurs, __attribute__, etc.
Farewell Le 20/09/2010 à 16:26Edité par Farewell le 20/09/2010 à 17:53 Est-ce que ce prototype est correct, pour une fonction d'une lib asm appelable en C ?
int pdtlib__CheckFileType(const char* Filename asm("a0"), unsigned char Type asm("d0"), const char* CustomType asm("a1"));
Ai-je besoin d'écrire des __attribute__x quelque part, ou des __ATTR_LIB_x__ ?
La plupart des fonctions d'ExtGraph ont des prototypes avec des registres explicites tout à fait similaires à celui-ci, sans attributes. Si tu n'as pas d'autres souhaits spéciaux pour cette fonction (du genre, demander à GCC de vérifier les arguments avec des attributes GCC comme nonnull et format), pas besoin d'attributes.
Si tous tes arguments ont une spécification de registre explicite, tu n'as pas besoin d'autres attributs, les attributs stkparm et regparm ne concernent que les arguments où le registre n'est pas spécifié explicitement.
1. C'est génant si on passe une partie des arguments par registres, une autre par la pile (obligé, avec une va_list) ? Il suffit de ne préciser des registres que là où on en utilise et ça va ?
2. C'est gênant si on utilise des registres >= a2 ?