180

c'est quoi l'utilité ? trifus

tu connais le nombre de programmes qui utilisent main(int argc, char *argv[], char *envp[]) ?
et le nombre de ceux qui utilisent getenv(char*) ?

181

Le paramètre env n'est pas standard.
5.1.2.2.1 Program startup
1 The function called at program startup is named main. The implementation declares no prototype for this function. It shall be defined with a return type of int and with no parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent;9) or in some other implementation-defined manner.
9) Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as char ** argv, and so on.

(WG14/N1256 ISO/IEC 9899:TC3)
avatarMes 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é

182

D'accord avec vos deux remarques, mais ça ne m'a rien coûté de le rajouter. Ca m'a pris 1 mn.
Si ça peut augmenter d'un brin la compatibilité, dans le sens ou les programmes utilisant ce troisième paramètre ne planteront pas, pourquoi s'en priver ?
avatarUn site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

183

+1.
Il n'y a pas d'environnement sur les TI-68k tournant AMS. Certes, ça ne coûte que deux ou quatre octets d'ajouter un paramètre constant NULL à la fonction, mais je ne vois pas trop l'intérêt grin
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

184

oui oui oui
avatarUn site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

185

Thibaut (./182) :
D'accord avec vos deux remarques, mais ça ne m'a rien coûté de le rajouter. Ca m'a pris 1 mn.

Mais ça gaspille une instruction, et ça rend aussi le pop des arguments à la fin moins efficace (6 octets passent avec addq, 10 octets non).
avatarMes 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é

186

En effet c'est trop grave grin
avatarUn site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

187

Au fait, à propos de execv/system, je précise au cas où tu ne sois pas au courant : la différence est que system te rend la main quand la ligne de commande que tu exécutes se termine ; execv, non (il ne te rend la main que s'il ne réussit pas à exécuter le truc)

./181 > mais on peut aussi mettre const char **argv, et c'est plus logique même si c'est rarement fait, vu que tu n'as effectivement pas le droit de modifier les arguments
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#

188

Effectivement, je sais plus coder grin *bookmark* merci ^^

189

getenv existe sous PedroM (il prend sun paramètre dans a2).
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

190

Tu as pigé FireHunter ? Pour résumer :

En C standard, quand on veut récupérer les arguments donnés au programme, il faut que main ait cette tronche :
int main(int nombredarguments, char *arguments[])
Le premier argument c'est arguments[1], le deuxième c'est arguments[2], etc.



Ton code serait donc :

#include <stdio.h>

int main (int nombredarguments, char *arguments[])
{
   return strlen(arguments[1]);
}
Tout simplement.
avatarUn site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

191

J'ai parfaitement compris, je viens de recoder un code similaire à celui filé en exemple dans le #2 happy

192

OK. Si tu veux apprendre le C-tout-court, il vaut mieux que tu t'habitues à cette façon de coder, avec ce type de main.
Après, quand on ne s'aide pas de likeonpc sur TI, c'est vrai que la récupération d'arguments doit être faite d'une manière très particulière (le SYM_STR n'avait rien à voir cependant), ce qui oblige à coder des trucs comme ça, qui ne sont pas standards du tout (tu trouveras ça nulle part ailleurs).
avatarUn site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

193

mais la TI n'est pas standard tout court. C'est comme si tu voulais essayer de mettre linux sur une carte navigo cheeky

194

À mon avis, il devrait apprendre à programmer normalement, sans la compatibilité PC, ça donnera des programmes plus efficaces et ça permet de gérer les arguments de manière plus précise (par exemple, de distinguer entre un entier et une chaîne contenant un entier). La compatibilité PC, c'est bien pour les portages, mais pas pour les programmes codés directement pour la calculatrice.
avatarMes 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é

195

Ca dépend de ce qu'il veut faire de sa TI aussi. hehe
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

196

ouai. Vous avez un problème pour comprendre le contexte dans lequel les choses sont dites parfois :
Thibaut (./192) :
OK. Si tu veux apprendre le C-tout-court, il vaut mieux que tu t'habitues à cette façon de coder, avec ce type de main.

Et puis Kevin, sur la question de la taille du code de lancement embarqué, je suis pas sur que tu sois en mesure de faire des critiques. Le nostub est le pire à ce sujet.
avatarUn site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

197

cons du genre void main(int argv, char* arg[]) { return argv; }Bon, merci pour toussa, mais c'normal que les progs tout

fassent plus de 2Ko ? C'est lié à la taille de la "lib" (abus de language ^^) je suppose, mais y a pas moyen d'optimiser grin ?

198

Sûrement ça + le code de démarrage, oui.
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

199

Oui, et + le fait que la version embarquée de GTC optimise très peu.
avatarUn site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.