1

C koi les BSS ? trifus ? trifaq ?
avatar

2

Sections de données allouées en temps d'exécution et initialisées à 0 (ou pas du tout). Seule la taille est stockée dans le programme, donc le programme prend moins de place en mémoire de stockage (archive, disque dur, ...).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Donc ça revient au même que ce que j'avais fait pour gagner de la place, c'est à dire mettre toutes les variables globales dans une grosse structure qui est allouée dynamiquement ? sauf que c'est probablement encore mieux vu que l'allocation est automatique...

Le nouveau linker met automatiquement les variables globales initialisées à zéro là-dedans ? donc je ferais mieux de laisser tomber ce hack...
et comment se comporte-t-il vis-à-vis de static ?
Si l'on compile en plusieurs fichiers objet, est-il préférable de déclarer static les variables globales qui sont locales à un des fichiers objet ou non ? (en supposant qu'il n'y a pas de conflit, bien sûr).
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

4

Shadoko
: Donc ça revient au même que ce que j'avais fait pour gagner de la place, c'est à dire mettre toutes les variables globales dans une grosse structure qui est allouée dynamiquement ? sauf que c'est probablement encore mieux vu que l'allocation est automatique...

Pas forcément. Les accès à la section BSS doivent être relogés, contrairement à ton accès indicé.
Le nouveau linker met automatiquement les variables globales initialisées à zéro là-dedans ?

GCC 3.3 sait faire ça, mais pour l'instant, le portage TIGCC le fait seulement pour les variables déclarées static, pas pour les variables globales "normales". (Il faut que je définisse la macro ASM_OUTPUT_ALIGNED_BSS, pour avoir des variables en BSS qui ne sont pas "common". Je vais le faire quand j'aurai le temps.)
et comment se comporte-t-il vis-à-vis de static ?

Cf. ci-dessus. smile
Si l'on compile en plusieurs fichiers objet, est-il préférable de déclarer static les variables globales qui sont locales à un des fichiers objet ou non ? (en supposant qu'il n'y a pas de conflit, bien sûr).

En général, ça a peu d'importance, mais static peut permettre des optimisations supplémentaires (y compris virer la variable si elle n'est pas utilisée).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

OK merci.
Je vais donc laisser en l'état pour le moment.
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#