
C'était en faisant quoi que tu avais 0 relogement ?
Et maintenant, au lieu de 0 relogements, j'en ai 33 !!!
Je comprends pas pourquoi cet abruti est pas capable d'écrire des offset(an)
si tu veux du code pc-relatif il ne suffit pas de mettre -mpcrel ?
Brunni (./9) :
Pour le type bool tu peux écrire un truc du genre:
typedef enum {false=0, true=1} bool;
Mais ce n'est pas forcément optimal étant donné qu'on ne sait pas la taille que le compilo réservera à l'enum. Donc ça peut très bien être 32 bits, à vérifier avec sizeof(bool). Sinon une autre solution:typedef unsigned char bool; enum {false=0, true=1};
Ainsi en déclarant un bool tu déclares en fait un unsigned char (8 bits) et ensuite tu utilises des constantes de l'énumération que tu définis après.
Concernant le warning je n'étais pas au courant, ça fait longtemps que je n'ai plus codé sur TI
Ximoon (./216) :
(à la fois, paye ta structure de bourrin, si elle était déclarée en locale et passée en paramètre intelligemment (mon dieu, je suis d'accord avec Kevin) t'aurais peut-être moins de problèmes
)
Lionel Debroux (./217) :
En effet, mais ça serait moins optimisé
Godzil (./219) :
Sinon Martial, si tu veux vraiment faire du C oublie les bidouilles de l'ASM, faire du C comme si tu faisait de l'ASM est une mauvaise pratique...
Folco (./220) :
Désolé, l'asm est ma seule base, ou plutôt le fonctionnement du proc, et je sais ce que je veux lui faire faire
squale92 (./221) :
d'un autre côté, quand tu codes en C (et c'est encore plus vrai pour des langages plus "haut niveau"), c'est généralement plus pour gagner du temps au moment du développement et faciliter la maintenance que pour compter les cycles CPU...
les optimisations du style "omg ça me coute 2 cycles CPU de plus que si je rendais mon code imbitable", ça va pour quelque chose comme peut-être 5% (et encore) de ton programme, qui ont vraiment besoin à mort de vitesse... Mais pour le reste, si tu gagne une semaine par mois à coder, tant pis si c'est 10% plus lent ^^Folco (./220) :
Désolé, l'asm est ma seule base, ou plutôt le fonctionnement du proc, et je sais ce que je veux lui faire faire
Le problème est peut-être là
tu penses plus à ce que tu veux que le CPU fasse... Et non à ce que tu veux que ton programme fasse ; alors que finalement, le CPU, globalement, l'utilisateur en a RAF, tant que le programme répond à ses besoins ^^
Je ne dis pas que connaitre le fonctionnement du CPU et de la machine en détails soit une mauvaise chose (ça permet d'éviter de faire complètement n'importe quoi aussi, et sur une machine limitée comme celle-ci, c'est une très bonne chose), mais est-ce nécessaire de se focaliser là-dessus à tout prix ?
DrawingData.Curs.x0 = DrawingData.Curs.x1; DrawingData.Curs.x1 = TmpX0;
Folco (./228) :
Ben non justement, je me disais qu'apprendre le C sur une telle plateforme permettait de savoir faire du C tout en regardanr un poil côté machine, juste de quoi produire un code efficace, mais sans plus. Je ne cherche pas le state of the art dans le code généré, mais le jour où je pondrai un code de 2,5 ko avec 33 relogements, ça voudra dire que je serai plus que centenaire et sénile ^^
il est pas alloué au runtime le BSS?
je vois pas comment il peut prendre de la place
Ximoon (./218) :
Bah quand même, ça permet de savoir exactement qui utilise quoi, et quand.
Folco (./220) :
Ben je vois pas le problème à avoir des variables dans les sections de code, vu qu'on peut pas faire autrement...
Folco (./229) :
Bon, dans les options de l'IDE, en mergeant les BSS avec les sections de code données, il ne me reste plus de BSS et que 4 reloegments. Ca pourrait venir d'où ?
Comment les dégager ? Par principe, j'aime bien le code intégralement PIC...
Godzil (./231) :
Dans ce cas, fait de l'ASM, faire du C "optimisé" pour une machine revient à faire de l'ASM et pas du C, surtout du C "portable"
Godzil (./231) :
./230: 200 Octets ? c'est ridicule
squalyl (./232) :
mais c'est le prix de la portabilité
squalyl (./232) :
en plus, as tu vraiment besoin d'éviter les relogements? C'est pas juste une méga contrainte que tu te poses, d'avoir du code PI?
Kevin Kofler (./234) :
les programmes où tout est global et toutes les fonctions peuvent trafiquer tout.
Kevin Kofler (./234) :
Le gros problème des variables stockées à l'intérieur du programme, c'est qu'elles gardent leur valeur si le programme n'est ni archivé ni compressé et que donc le programme risque de foirer si on ne les initialise pas soigneusement au début de _main (et non pas dans l'initialisateur lors de la déclaration).
Kevin Kofler (./234) :
Écritures dans ta structure globale.
Kevin Kofler (./234) :
Attention, taille du programme limitée à 32 KO si tu utilises ça.
d'ou l'idée je suppose de référencer tous les bss par rapport a l'adresse de base de la section, comme ça on a un seul relogement non?
Il est infoutu d'utiliser offset(an) pour ça ??
Pourquoi c'est pas fait par défaut, toi qui est toujours pour l'optimisation taille ?