forumti.gif
@_ö
(00:18)  Bienvenue ! - Inscrivez vous pour poster ! -
@Boo + 16 inconnu(s)

Login :  Mot de passe :      Se souvenir de moi.  Mot de passe perdu ?
/!\:: Cliquez ici pour vous inscrire et poster, créer des sujets ou des forums ! ::/!\
 « Précédent - 5/7 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Prog C TI (204r) » Ecriture bien spécifique de code C
./119 - REPRISE AUTOMATIQUE DU MESSAGE PRECEDENT
18.06.2001 - 26215
22:59  Folco - Posté : 04-09-2010  M
Ok, donc l'endianness c'est bon à retenir pour les cas généraux, mais codant ti-only ici je m'en fous.

Et les BMP c'est quoi ? Réellement une structure, pas un tableau ? J'ai jamais travaillé dessus en fait ^^ Même avec la SDL, il me suffisait de fournir un fichier en entrée, et la structure qui résultait de la création du sprite était opaque.
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./Publicité AdSense
./120
10.06.2001 - 33210
00:36  Kevin Kofler - Posté : 05-09-2010  M
Folco (./107) :
extern void CommandHelp(char);
extern void CommandAbout(char);
extern void CommandConfig(char);
extern void CommandFlags(char);

J'ai une erreur parce que je ne passe pas de nom à ce paramètre qui ne m'intéresse pas. La solution élégante du C++ qui consiste à ne pas mettre de nom de variable provoque une erreur en C.

Ce n'est pas ici ton problème, mais au moment de la définition.
__attribute__((unused)) est une solution, mais évidemment GCC-only.
Je pourrais aussi essayer de bidouiller le GCC de TIGCC pour qu'il accepte ça, mais ce ne serait pas une solution portable non plus.

Pen^2 (./109) :
public const char* const s1= str+0 ;
public const char* const s2= str+3 ;
public const char* const s3= str+6 ;
public const char* const s4= str+9 ;

Perso, j'utiliserais #define pour ça, ça donne du code beaucoup plus efficace (pas de pointeurs globaux à reloger).
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
./121
18.06.2001 - 26215
00:40  Folco - Posté : 05-09-2010  M
Kevin Kofler (./120) :
j'utiliserais #define pour ça, ça donne du code beaucoup plus efficace (pas de pointeurs globaux à reloger).

#crayon#
A cause des relogements, c'est en effet ce que j'ai implémenté.

Je me demande d'ailleurs pourquoi quand on a ça :
.L0: .asciz "abcde"
gcc s'empresse de rajouter :
Str: .long #.L0

C'est bizarre, il y a toujours moyen de faire un lea/pea Str(pc) avec une chaine, pourquoi toujours créer une adresse absolue pour les chaines ?

Kevin Kofler (./120) :
Ce n'est pas ici ton problème, mais au moment de la définition.

Ben en fait, je ne peux pas définir les fonctions autrement, parce qu'elles sont appelées en tant que Callback par une lib qui ne connait que le proto "void (*func)(char)".
Et quand la lib appelle une fonction, elle n'a aucun moyen de savoir que la fonction n'a pas besoin de ce foutu char ^^
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./122
10.06.2001 - 33210
00:54  Kevin Kofler - Posté : 05-09-2010  M
Folco (./121) :
C'est bizarre, il y a toujours moyen de faire un lea/pea Str(pc) avec une chaine, pourquoi toujours créer une adresse absolue pour les chaines ?

Parce que c'est la sémantique de:
const char * const x = "foo";

Utilise plutôt:
const char x[] = "foo";

et le pointeur relogé aura disparu.

Ben en fait, je ne peux pas définir les fonctions autrement, parce qu'elles sont appelées en tant que Callback par une lib qui ne connait que le proto "void (*func)(char)".
Et quand la lib appelle une fonction, elle n'a aucun moyen de savoir que la fonction n'a pas besoin de ce foutu char ^^

Ce que je dis, c'est juste que c'est la définition le problème et pas la déclaration. Le code que tu as copié passe sans problèmes.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
./123
18.06.2001 - 26215
01:27  Folco - Posté : 05-09-2010  M
Ah merci bien pour les deux tips. :)
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./124
27.04.2006 - 38527
01:34  @Zerosquare - Posté : 05-09-2010  @_ö
L'en-tête des fichiers BMP est une structure.

Si tu veux avoir une structure qui ne contient aucun padding (donc 100% telle que tu la déclares), il faut utiliser l'attribut "packed" dans la déclaration de ta stucture (c'est spécifique à GCC, il n'existe pas de façon standard de le faire en C).
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau

« Sur Atari tout le hardware tu trouvera, le driver toi même tu le codera » — GT Turbo
./125
18.06.2001 - 26215
01:42  Folco - Posté : 05-09-2010  M
Super merci !

Et c'est supporté par TIGCC : http://tigcc.ticalc.org/doc/gnuexts.html#SEC91_packed
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./126
30.06.2001 - 54306
14:51  Godzil - Posté : 15-09-2010  M
Zerosquare (./124) :
L'en-tête des fichiers BMP est une structure.

Si tu veux avoir une structure qui ne contient aucun padding (donc 100% telle que tu la déclares), il faut utiliser l'attribut "packed" dans la déclaration de ta stucture (c'est spécifique à GCC, il n'existe pas de façon standard de le faire en C).



beaucoup de compilo supportent le pragma "pack"

#pragma pack(1)
struct
{
}
#pragma pack()


C'est apriori originaire de VisualC, mais GCC le support bien chez moi.

Et je confirme:

struct test_t {
  int  a;
  char b;
  int  c;
};
 
struct test_t test = { 10, 20, 30};
 
struct test_packed_t {
  int  a;
  char b;
  int  c;
} __attribute__((__packed__));
 
struct test_packed_t test_packed = { 10, 20, 30};
 
#pragma pack(1)
struct test_pragma_t {
  int  a;
  char b;
  int  c;
};
#pragma pack()
 
struct test_pragma_t test_pragma = { 10, 20, 30};


gcc -S test.c -o test.s

donne:

	.file	"test.c"
.globl test
.data
.align 4
.type test, @object
.size test, 12
test:
.long 10
.byte 20
.zero 3
.long 30
.globl test_packed
.type test_packed, @object
.size test_packed, 9
test_packed:
.long 10
.byte 20
.long 30
.globl test_pragma
.type test_pragma, @object
.size test_pragma, 9
test_pragma:
.long 10
.byte 20
.long 30
.ident "GCC: (Gentoo 4.4.3-r2 p1.2) 4.4.3"
.section .note.GNU-stack,"",@progbits
Edité par Godzil le 15-09-2010 à 14:59:26.
avatar
Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
./127
27.04.2006 - 38527
14:57  @Zerosquare - Posté : 15-09-2010  @_ö
Intéressant, je ne savais pas qu'on pouvait l'utiliser sous GCC (dans la doc, ils disent qu'ils l'ont rajouté pour être compatible avec VC justement). Mais ça reste une extension...
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau

« Sur Atari tout le hardware tu trouvera, le driver toi même tu le codera » — GT Turbo
./128
30.06.2001 - 54306
15:03  Godzil - Posté : 15-09-2010  M
clang le supporte aussi.

et meme mon gcc 4.2.2 pour ARM


	.file	"test.c"
.global test
.data
.align 2
.type test, %object
.size test, 12
test:
.word 10
.byte 20
.space 3
.word 30
.global test_packed
.type test_packed, %object
.size test_packed, 9
test_packed:
.4byte 10
.byte 20
.4byte 30
.global test_pragma
.type test_pragma, %object
.size test_pragma, 9
test_pragma:
.4byte 10
.byte 20
.4byte 30
.ident "GCC: (GNU) 4.2.2"


et meme un gcc 3.4.1 pour arm


test_packed:
.4byte 10
.byte 20
.4byte 30
.global test_pragma
.align 2
.type test_pragma, %object
.size test_pragma, 12
test_pragma:
.word 10
.byte 20
.4byte 30



Moralité, autant jeter les extention GNU non portable ^^

Squalyl: TG merci
Edité par Godzil le 15-09-2010 à 16:12:37.
avatar
Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
./129
10.06.2001 - 33210
15:26  Kevin Kofler - Posté : 15-09-2010  M
Et utiliser une extension VC non portable à la place? #sick# Clang accepte aussi __attribute__((packed)) si je ne me trompe; parmi les compilateurs courants, il n'y a que VC qui n'accepte que ses propres extensions. #bang# Quant aux compilateurs moins courants, ils ne gèrent pas forcément ni l'une ni l'autre syntaxe, parce que ni l'un ni l'autre n'est du C standard.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
./130
16.06.2001 - 60468
16:11  squalyl - Posté : 15-09-2010  M
"moraliter" #sick#
./131
30.06.2001 - 54306
16:14  Godzil - Posté : 15-09-2010  M
Kevin Kofler (./129) :
Et utiliser une extension VC non portable à la place? #sick# Clang accepte aussi __attribute__((packed)) si je ne me trompe; parmi les compilateurs courants, il n'y a que VC qui n'accepte que ses propres extensions. #bang# Quant aux compilateurs moins courants, ils ne gèrent pas forcément ni l'une ni l'autre syntaxe, parce que ni l'un ni l'autre n'est du C standard.


Les pragma sont un moyen standard de donner des ordres a un compilateur contrairement a des attributs comme le fait GCC.

Si le compilateur ne comprend pas un pragma, il a deux possibilitée :
- Il l'ignore
- Il affiche un warning pour dire "ça je ne connais pas"

Si tu utilise la méthode GCC, un compilo non GCC qui ne comprend pas va faire

"Error - file.c:42: You put a fucking thing here that I don't understand"
avatar
Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
./132
28.10.2001 - 7436
17:11  Lionel Debroux - Posté : 15-09-2010  M
La sémantique du C originel n'est pas assez riche pour tout un tas de choses que l'on a rencontrées à l'usage, dans les programmes, par la suite...
Et Comme les mécanismes d'extension sémantique du C n'ont pas été définis assez tôt (ou ne vont pas assez loin - #pragma est ancien mais ne va pas assez loin), c'est le bazar: #pragma incompatibles entre compilateurs, __attribute__, etc.
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.
./133
18.06.2001 - 26215
17:16  Folco - Posté : 15-09-2010  M
(cross -> il dira f***ing :o)

Merci bien pour vos considérations ceci-dit, c'est intéressant. :)



J'ai une question à propos des conventions d'appel :
J'ai un programme P qui appelle une lib L en lui donant l'adresse d'une callback C

Comment ça se passe au niveau des registres ?
Est-ce que la callback attend que les registre a2-a6/d3-d7 aient les même valeurs qu'au moment où P a appelé la fonction de L ?
Ou est-ce que L peut modifier ces registres à sa guise avant d'appeler C ? (du moment qu'elle les restaure avant le return vers P évidemment)

En fait, je ne sais pas où chercher ces fonctions, je ne comprends même pas les expressions __attribute__((stkparm)) ou autres au niveau de la syntaxe C...
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./134
10.06.2001 - 33210
17:51  Kevin Kofler - Posté : 15-09-2010  M
Folco (./133) :
Comment ça se passe au niveau des registres ?

C'est un appel de fonction comme un autre.

Est-ce que la callback attend que les registre a2-a6/d3-d7 aient les même valeurs qu'au moment où P a appelé la fonction de L ?

Non.

Ou est-ce que L peut modifier ces registres à sa guise avant d'appeler C ? (du moment qu'elle les restaure avant le return vers P évidemment)

Oui.

En fait, je ne sais pas où chercher ces fonctions, je ne comprends même pas les expressions __attribute__((stkparm)) ou autres au niveau de la syntaxe C...

__attribute__((stkparm)) veut dire que tous les paramètres sont passés par la pile, c'est la convention d'appel par défaut (mais généralement la moins efficace). Pour un callback, il est important d'utiliser une convention d'appel standard parce que la fonction L doit connaître la convention d'appel utilisée, c'est pour ça qu'on utilise généralement stkparm pour ça (cf. aussi la macro CALLBACK).
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
./135
28.10.2001 - 7436
18:16  Lionel Debroux - Posté : 15-09-2010  M
Est-ce que la callback attend que les registre a2-a6/d3-d7 aient les même valeurs qu'au moment où P a appelé la fonction de L ?

Complément au "Non" de Kevin: dans les callbacks, il faut donc prendre soin de réinitialiser les variables globales dans les registres ou le registre utilisé comme base pour les lectures, écritures et transferts de contrôle (forme de variable globale dans les registres).
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.
./136
10.06.2001 - 33210
19:10  Kevin Kofler - Posté : 15-09-2010  M
Complément au complément ;):
… sauf si la bibliothèque est en connaissance de la variable globale en question (par exemple, la fonction qsort de TIGCC réserve %a5, utilisé pour OPTIMIZE_ROM_CALLS). Mais par exemple AMS n'est en connaissance de rien. :(
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
./137
18.06.2001 - 26215
19:17  Folco - Posté : 15-09-2010  M
Kevin Kofler (./134) :
(mais généralement la moins efficace)

Il n'y a aucun souci à spécifier qu'on passe les paramètres par registre ? Ca ne pose pas de problème ?
C'est ce qui se fait pour les libs en général ? Y a-t-il des contre-indications ?
Kevin Kofler (./134) :
Pour un callback, il est important d'utiliser une convention d'appel standard parce que la fonction L doit connaître la convention d'appel utilisée, c'est pour ça qu'on utilise généralement stkparm pour ça

Et pourquoi ?
Si j'écris une fonction de lib qui a ce proto : void libfunc (void (*callback) (char a = %d0, int b = %d1, short* c = %a0)) (à la syntaxe près évidemment)
Le programme P appellera L en fournissant l'adresse d'une callback qui aura le même proto, non ? Alors en quoi serait-ce gênant ?


Merci pour tes réponses, déjà.


Lionel, je ne comprends pas :( tu peux préciser par un exemple sommaire stp ?
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./138
27.04.2006 - 38527
19:22  @Zerosquare - Posté : 15-09-2010  @_ö
Folco (./137) :
Y a-t-il des contre-indications ?
Ne pas utiliser en cas de grossesse, d'allaitement, chez les enfants de moins de 6 ans...
#dehors#

avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau

« Sur Atari tout le hardware tu trouvera, le driver toi même tu le codera » — GT Turbo
./139
10.06.2001 - 27289
19:44  Pen^2 - Posté : 15-09-2010  M
huhuhu %)
./140
10.06.2001 - 33210
21:23  Kevin Kofler - Posté : 15-09-2010  M
Folco (./137) :
Si j'écris une fonction de lib qui a ce proto : void libfunc (void (*callback) (char a = %d0, int b = %d1, short* c = %a0)) (à la syntaxe près évidemment)
Le programme P appellera L en fournissant l'adresse d'une callback qui aura le même proto, non ? Alors en quoi serait-ce gênant ?

Techniquement, il n'y a aucun souci. C'est juste que l'utilisateur devra déclarer sa fonction avec le même prototype, donc ça pourrait compliquer l'utilisation de ta bibliothèque. C'est plus simple pour l'utilisateur s'il doit juste mettre CALLBACK pour avoir la bonne convention d'appel (et s'il n'utilise pas -mregparm, même pas ça).
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
./141
18.06.2001 - 26215
22:56  Folco - Posté : 15-09-2010  M
Ok, merci bien. Je vais rester sur la solution simple alors. :) Même si ça prend de la place et de la vitesse. :( Mais ça le vaut bien. :D

Zerosquare (./138) :
Folco (./137) :
Y a-t-il des contre-indications ?
Ne pas utiliser en cas de grossesse, d'allaitement, chez les enfants de moins de 6 ans...

Euh... mon fils utilise déjà les callbacks avec passage d'arguments... euh... par registre... tu crois que c'est grave ? #peur#
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./142
27.04.2006 - 38527
23:11  @Zerosquare - Posté : 15-09-2010  @_ö
Il a quel âge, déjà ? %)
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau

« Sur Atari tout le hardware tu trouvera, le driver toi même tu le codera » — GT Turbo
./143
18.06.2001 - 26215
23:15  Folco - Posté : 15-09-2010  M
4 ans dans 2 mois. Mais je déconne, on a pas encore attaqué le callbacks #trilangue#
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./144
18.06.2001 - 26215
16:26  Folco - Posté : 20-09-2010  M
Est-ce que ce prototype est correct, pour une fonction d'une lib asm appelable en C ?
int pdtlib__CheckFileType(const char* Filename asm("a0"), unsigned char Type asm("d0"), const char* CustomType asm("a1"));

Ai-je besoin d'écrire des __attribute__x quelque part, ou des __ATTR_LIB_x__ ?
Edité par Folco le 20-09-2010 à 17:53:18.
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./145
28.10.2001 - 7436
16:41  Lionel Debroux - Posté : 20-09-2010  M
La plupart des fonctions d'ExtGraph ont des prototypes avec des registres explicites tout à fait similaires à celui-ci, sans attributes. Si tu n'as pas d'autres souhaits spéciaux pour cette fonction (du genre, demander à GCC de vérifier les arguments avec des attributes GCC comme nonnull et format), pas besoin d'attributes.
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.
./146
18.06.2001 - 26215
16:43  Folco - Posté : 20-09-2010  M
Ah ok, merci. On va dire que je ne domine pas le domaines des attribute :D J'ai juste suivi ce que PpHd fait dans kernel.h.
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./147
10.06.2001 - 33210
17:13  Kevin Kofler - Posté : 20-09-2010  M
Si tous tes arguments ont une spécification de registre explicite, tu n'as pas besoin d'autres attributs, les attributs stkparm et regparm ne concernent que les arguments où le registre n'est pas spécifié explicitement.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
./148
18.06.2001 - 26215
17:53  Folco - Posté : 20-09-2010  M
Parfait, merci. :)
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./149
18.06.2001 - 26215
23:13  Folco - Posté : 20-09-2010  M
1. C'est génant si on passe une partie des arguments par registres, une autre par la pile (obligé, avec une va_list) ? Il suffit de ne préciser des registres que là où on en utilise et ça va ?
2. C'est gênant si on utilise des registres >= a2 ?
avatar<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./Publicité AdSense
 « Précédent - 5/7 - Suivant » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Prog C TI (204r) » Ecriture bien spécifique de code C

./Poster un nouveau message. - Ouvrir dans une nouvelle fenêtre
Login : Mot de passe :

url - image - media  
spoiler - pre - fixed
quote - box - hr
poll - code





Smileys
Smileys perso
Pièce jointe
     Flood control (?) :    
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

» yN ©1624 - Aide / Charte / Crédits
232ms | Statistiques