parce que c'est facile d'attendre que le compilo remplace un mod 16 par un &0xf quand on pourrait le faire soi même?
bref, le mauvais est encore une fois entre la chaise et le clavier je pense.
squalyl (./30) :Je ne suis pas d'accord. Quand on veut coder de façon claire, lisible par autrui, et logique, on utilise un modulo. Le masquage est une conséquence de la base utilisée mais n'exprime pas directement un modulo. Quand le compilateur est bon, il se charge de convertir le modulo en un masquage quand c'est possible. Les langages de haut niveau permettent plus de lisibilité, il faut en profiter.
parce que c'est facile d'attendre que le compilo remplace un mod 16 par un &0xf quand on pourrait le faire soi même?
bref, le mauvais est encore une fois entre la chaise et le clavier je pense.
Thibaut (./32) :
Quelle est cette sémantique ?
Thibaut(./36) :(vus que je découvre ce masque )
Je ne suis pas d'accord. Quand on veut coder de façon claire, lisible par autrui, et logique, on utilise un modulo. Le masquage est une conséquence de la base utilisée mais n'exprime pas directement un modulo.
Thibaut (./32) :
Je ne suis pas d'accord. Quand on veut coder de façon claire, lisible par autrui, et logique, on utilise un modulo. Le masquage est une conséquence de la base utilisée mais n'exprime pas directement un modulo. Quand le compilateur est bon, il se charge de convertir le modulo en un masquage quand c'est possible. Les langages de haut niveau permettent plus de lisibilité, il faut en profiter.
Kevin Kofler (./39) :
PedroM n'est surtout carrément pas maintenable en son état actuel, tout dépend de tout, les fonctions s'attendent à ce que d'autres fonctions (souvent même pas dans le même fichier .asm!) soient à moins de x octets de distance (parfois x=127 ) (ça marche parce que tous les .asm sont inclus dans le même gros .asm ), elles s'appellent par des points d'entrée "raccourci" pour contourner la convention d'appel standard, bref ce n'est pratiquement pas modulaire. (Et c'est bien dommage, j'aurais bien voulu faire des modifications, mais c'est la galère de changer quoi que ce soit vu sa structure imbitable.)
ExtendeD (./43) :
Pour le compilo, le choix a été fait en amont, c'est au développement de s'adapter ensuite, on peut pas ensuite ramener tous les problèmes au compilo.
PpHd (./48) :
Sinon, perso je laisse le compilateur optimisé *8, mod 8, tout seul. S'il n'est pas capable d'optimiser çà, il est nul et ca ne vaut pas la peine que j'essaye de faire un code rapide avec.
Kevin Kofler (./49) :
Il y a des bCC entre fonctions aussi.
Kevin Kofler (./51) :
Une fois de plus, pour les nombres signés, ce n'est pas équivalent (sauf pour la multiplication), de plus la sémantique de >>3 et &7 est celle que tu veux en général pour la manipulation de sprites, celle de /8 et %8 non. (J'en ai corrigés, des bogues, dans des morceaux de code postés sur les forums, en remplaçant /8 et %8 par >>3 et &7 respectivement pour des nombres signés!)
Martial Demolins (./53) :
Et tu fais comment s'il optimise ton futur smc?
PpHd (./54) :
Sauf que j'utilise dans ce cas des nombres non signés. J'essaye d'écrire du code optimum pour le compilateur de telle sorte qu'il est le maximum d'info pour optimiser.
Kevin Kofler (./56) :
Et tu fais comment si tu as besoin de clipping à gauche? Les coordonnées d'un sprite clippé peuvent être légitimement négatives.