#include<stddef.h>
...Mais sur l'année écoulée, j'ai eu droit à plusieurs situations du genre
int bitrate
. Ah oui? en quelle unité, s'il vous plait, le bitrate ? bit/seconde ? kilobit/seconde ? megabit/seconde ? Et dans le code de mon moteur de jeu, int x
ou int width
est à peu près pareil. Est-ce que x est une coordonnée absolue (dans le niveau) ou relative (à l'écran) ? est-ce qu'elle est exprimée en pixels ? en tiles (si, si, souvenez vous, les petits pavés élémentaires de graphisme) ? en 256eme de pixel pour les calculs de déplacement avant affichage ?Alors bien sûr, on peut tenter
int kbps, int x_in_tiles
, etc. Mais pourquoi. Pourquoi faire rentrer dans le nom de la variable une information (l'unité de mesure) qui dénote plutôt de son type (on peut additionner deux valeurs en kbps entre elles, mais pas des Mbps et des kbps sans faire une conversion au préalable). Bref, j'ai pris l'habitude de construire des types qui expriment des unités de mesure. Beaucoup. Au point que je me méfie presque maintenant du code qui annonce juste un "int" parce que dès qu'on va commencer à intégrer des morceaux de code qui viennent d'horizon différents, on aura aucun moyen de se souvenir si le * 1000
qui est là dans l'appel de fonction est justifié ou non.Et comme je viens d'atteindre le point ou la branche "revisite pour cause de tutoriel" de mon moteur de jeu est prête à recevoir le code servant à charger des fichiers .spr, ce serait peut-être le bon moment pour y introduire des types comme "numéro de page, numéro de bloc, numéro de tile", etc.
ça aurait été chouette d'utiliser -Wconversion pour faciliter la mise à niveau du code, mais c'est l'horreur avec devkitpro https://stackoverflow.com/questions/48850613/what-should-i-use-instead-of-wconversion?noredirect=1#comment84708027_48850613
ReplyDeleteBon, okay, POSIX tries to reserve identifiers ending with _t for its own purposes (https://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier/228797#228797)
ReplyDelete- alsa
- linux kernel
- boost
- cairo
- dbus
- libdirac
- libgcrypt
granted, most of them use __t rather than something as short as pageno_t.
Sprite Editor is no longer showing the contents of the grid.
ReplyDelete- since GuiLayers update
- because SUB_BG3 isn't enabled.
Thanks mercurial to make it easy to identify.