30

disons que la norme ANSI est une définition du langage C,
et le C comporte une "bibliothèque standard", qui contient les fonctions de bases, définies par l'ANSI (autrement dit, la norme dit quelles sont ces fonctions de base). Normalement, tout compilateur C se disant ANSI (c'est à dire quasiment tous !) doivent implémenter ces fonctions Tous les compilateurs C étant ANSI (sauf quelques petits compilateurs sans grande importance), si tu n'utilise que des fonctions ANSI, ton source sera portable d'un compilateur vers un autre (enfin, en théorie)


OK c'est bien ce que je pensais. smile
fopen, printf, sont ANSI. => si tu trouves un compilateur C qui n'a pas ces fonctions, c'est que tu n'as vraiment pas de chance , et tu ferai bien de passer à un autre compilateur... (à moins d'être sur une plate-forme particulière, pour laquelle les entrées/sorties par flux/fichiers ne sont pas utiles) clrscr... je dirait que ce n'est pas ANSI => pas présent sous tous les compilateurs C


Oui je viens de m'en rendre compte pour fopen, printf... On vois assez rapidement les focntions ANSI. wink
si tu utilise des fonctions non ANSI, ça peut marche sur le compilateur que tu utilise....
Mais ça peut ne pas marcher sur un autre compilateur. Par exemple, les extensions GNU ou C99 (le C ANSI étant le C89, il me semble) de GCC ne marchent pas (sauf pour certaines) sous d'autres compilateurs, qui ne sont pas conformes à ces normes ; cela est d'ailleurs un problème qd tu as appris à programmer sous GCC et que tu te retrouves subitement sous un autre compilo


J'utilise DevC++ mais ça serait quand même intressant de porter mes programmes sous Linux voir sur TI donc la portabilité est très importante.
je dirai bien de prendre un bouquin... non pas un bouquin qui te serve à apprendre, mais un bouquin qui te serve comme référence...
(le K&R est pas mal, comme référenc pour le C, mais il ne parle pas de toute la librairie, il me semble ) (pour le C++, il y a le "Langage C++", de Bjarne Stroustrup (le fondateur du langage), qui fait une bonne bible... mais PAS DU TOUT adapté à un débuttant, à mon avis)


En fait j'ai un bouqin "Le langage C++ Micro Application" que je trouve bien fait mais il explique le C++ de façon général vers des choses complexe or le point qui fait défaut c'est que parfois ce bouquin ne montre pas toutes les fonctions ainsi que leur signification... Il ne ce base que sur des exemples assez simpliste. sad

En tout cas j'arrive à m'en sortir grâce à TIGCC, je pensais devoir rapprendre de A à Z des choses pour me mettre à la programmation sur PC et bah non, bien sûr j'ai du chemin mais bon je peux déjà commencer à coder...

Bon juste une simple question, voilà un programme que j'ai réalisé, est-ce que ce programme à une écriture 'standard' et les fonctions sont vraiment adapté à ce que je fais?

http://perso.wanadoo.fr/tisofts/divers/comdos.zip

avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

31

J'utilise DevC++ mais ça serait quand même intressant de porter mes programmes sous Linux voir sur TI donc la portabilité est très importante.

DevC++ est une IDE pour GCC/G++
TIGCC est basé sur GCC
Linux a pour compilateur "standard" GCC/G++
=> s
i tu veux coder pour ces trois plates-formes, tu peux utiliser les extensions GNU et le C99 de GCC smile (mais bon, après, ça sera pas portable sur un autre compilo que GCC... mais, ma foi... c toi qui voit smile)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

32

pour ton source, en survolant, deux trois remarques juste en passant :

main.cpp :
#include <conio.c>
tu inclus le .c ? c pas plutot le .h qu'il fodrait inclure ?
(enfin, ça semblerait plus logique)

fonction StrCnvL : connait pas.
(cela dit, je code pas souvent en C pour PC)
arf, non, c bon, je viens de la voir dans un autre fichier smile

if (input_file==NULL) {
      cerr << "Error: No input file.\n"; return 0;}

(y'a ça, et pareil ailleurs)
en général, sous les system UNIX-like (sous windows, je sais pas), la valeur de retour 0 signifie qu'il n'y a pas eu d'erreur lors de l'exécution du programme...
(qd tu appelle ton prog depuis un programme de taitement batch, tu vérifie qu'il a pas retourné autre chose que 0 avant de continuer, en général...)
=> il serait bon que, par habitude, tu mette autre chose que 0 en cas d'erreur smile
(même chose qd tu fais un exit(0) en cas d'erreur, d'ailleurs)

strcat ((char *)(buffer),".tpe");}
(et toutes les opérations du style strcpy et dans le genre)
=> il faut que tu sois sur que ton buffer est assez grand pour recevoir la chaine que tu lui affecte...

//Lecture de l'Header
(et autres)
vu que header commence par un H, je ne raccourcirai pas "le" en "l'", et mettrait "du header"
(enfin, après, je sais pas ce que dit la règle de grammaire / orthographe grin)


#include <strings.h>
si tu utilise les chaines C (char *), il faut :
#include <cstring>
+ namespace std
si tu utilise les chaines C++, il faut
#include <string>
(enfin, du moins, c ce qu'on m'a appris à l'iut, et qui marche aussi bien sous MSVCpp que sous G++)
(cela dit, j'ai pas testé la compilation ; ça marche peut-être aussi ainsi smile)

fonctons/.cpp
//Caractère en cours
    character=*(BYTE*)(string+i);

char est généralement sur un octet, mais ce n'est pas toujours le cas...
la norme dit juste que sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)...
=> plutot que de caster avec un BYTE *, il vaurdrait peut-être mieux caster avec un char *, je pense (même si, généralement, ça revient au même)

aussi, pourquoi est-ce que tu met tes includes dans le cpp, et non pas dans le .h
=> ainsi, tu n'aurais qu'à inclure le .h, qui a son tour incluerait le reste...
(enfin, question d'habitude)



j'ai juste survolé, et ce que je dis n'est pas forcément vrai non plus smile
+
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

33

pour ton source, en survolant, deux trois remarques juste en passant :

main.cpp :
#include <conio.c>
tu inclus le .c ? c pas plutot le .h qu'il fodrait inclure ?
(enfin, ça semblerait plus logique)

fonction StrCnvL : connait pas.
(cela dit, je code pas souvent en C pour PC) arf, non, c bon, je viens de la voir dans un autre fichier


En fait quand j'inclue conio.h ça focntionne pas et la seule solution que je trouve c'est conio.c. sad
Pour StrCnvL ça convertie une chaîne de caractères en minuscule, je vois pas d'autrs équivalent donc je l'ai réalisée.
(y'a ça, et pareil ailleurs)
en général, sous les system UNIX-like (sous windows, je sais pas), la valeur de retour 0 signifie qu'il n'y a pas eu d'erreur lors de l'exécution du programme...
(qd tu appelle ton prog depuis un programme de taitement batch, tu vérifie qu'il a pas retourné autre chose que 0 avant de continuer, en général...)
=> il serait bon que, par habitude, tu mette autre chose que 0 en cas d'erreur (même chose qd tu fais un exit(0) en cas d'erreur, d'ailleurs)


OK donc je peux mettre -1 par exemple. wink
(et toutes les opérations du style strcpy et dans le genre) => il faut que tu sois sur que ton buffer est assez grand pour recevoir la chaine que tu lui affecte...


Oui je m'étais fait avoir plein de fois sur ce genre de choses, les buffer sont de taille assez grand donc pas de pbs. wink
(et autres)
vu que header commence par un H, je ne raccourcirai pas "le" en "l'", et mettrait "du header" (enfin, après, je sais pas ce que dit la règle de grammaire / orthographe )



L'orthographe et moi ça fait 2. grin
si tu utilise les chaines C (char *), il faut :
#include <cstring>
+ namespace std
si tu utilise les chaines C++, il faut
#include <string>
(enfin, du moins, c ce qu'on m'a appris à l'iut, et qui marche aussi bien sous MSVCpp que sous G++)
(cela dit, j'ai pas testé la compilation ; ça marche peut-être aussi ainsi )
fonctons/.cpp


Ouai je vais modofier ça normalerment ça doit focntionner pareil mais que avec du C.
char est généralement sur un octet, mais ce n'est pas toujours le cas...
la norme dit juste que sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)...
=> plutot que de caster avec un BYTE *, il vaurdrait peut-être mieux caster avec un char *, je pense (même si, généralement, ça revient au même)

aussi, pourquoi est-ce que tu met tes includes dans le cpp, et non pas dans le .h
=> ainsi, tu n'aurais qu'à inclure le .h, qui a son tour incluerait le reste... (enfin, question d'habitude)


BYTE est une définition ajouté #define BYTE char et je pense que c'est un peu plus lisible pour moi. smile
Pour les includes j'y avais pas pensé. smile

Merci d'avoir jeté un coup d'oeil. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

34

L'idée est d'inclure conio.h, de compiler conio.c séparément et de rajouter conio.o lors du link.

Quant à *nix, linux-conio utilise l'interface portable curses, donc ça devrait fonctionner sous n'importe quel *nix normalement.

L'alternative est évidemment d'utiliser curses nativement, il y a des implémentations (pdcurses par exemple) pour Win32 et DOS.
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é

35

Pour StrCnvL ça convertie une chaîne de caractères en minuscule, je vois pas d'autrs équivalent donc je l'ai réalisée.

OK
Cela dit, plutôt que d'utiliser
[pre]if ((character>=65) && (character<=90)) buffer [_i_]=character+32; else buffer [_i_]=character;[/cite] qui suppose que tu travaille nécessairement avec de l'ASCII (voir ASCII étendu), tu peux utiliser tolower (stdlib, je dirait ; pas sûr), qui te converti un caractère de majuscules à minuscules, et qui, en théorie, est censée fonctionner avec le jeu de caractères du compilateur... qui est censé être conforme à celui utilisable sur la machine, je suppose... (enfin, autant laisser faire le compilateur plutot que réinventer la roue) (cela dit, je suis conscient du fait que, si tolower est une fonction, tu perdras du temps en appels de fonctions... mais il me semble que c souvent une macro, justement (pas garanti, mais il me semble)) [cite]BYTE est une définition ajouté #define BYTE char et je pense que c'est un peu plus lisible pour moi.[/cite] arf, oué, j'avais pas fait gaffe :( cela dit, est-ce que ce n'est justement pas pour ce genre de choses qu'un typedef serait tout à fait approprié ? (en définissant via un typedef que BYTE est un alias à char) (certes, avec un define, ça marche aussi... mais, après tout, typedef existe... autant utiliser ce qui est le plus précis... enfin, remarque, c'est facile de parler sur les sources des autres, mais fodrait pas que je poste certaines des miennes :D) [cite]Merci d'avoir jeté un coup d'oeil.[/cite] de rien :) [edit] : suppression des balises _i_, qui faisaient que tout le post était en italique => Remplacement des i entre crochet par des _i_ entre crochet...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

36

*** bug spotted ***
faut pas utiliser [ i ] wink

Sinon squale tigcclib n'est pas tout à fait une bibliothèque standard ANSI, y a pas stdin/stdout/stderr happy
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#

37

*** bug spotted *** faut pas utiliser [ i ]

argh, oué, en effet... tout le post est en italique... même la signature grin
bon, je sens bien l'edit... c rare, mais là, ça sera pas un mal...
Sinon squale tigcclib n'est pas tout à fait une bibliothèque standard ANSI, y a pas stdin/stdout/stderr

argh, oué, effectivement.
(oublié)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

38

geo² : conseil pour la doc : dégottes toi un VisualC++ 5.0 il y a Booksonline (l'ancètre de msdn) mais qui ne parle que de C/C++ (et qui est bien sourcée)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

39

OK merci pour toutes les suggestions. smile
Je vais essayer de me trouver un bouqin plus accès code que théorie voir trouver Visual C++ 5.0.

En effet Squale92 typedef est plus adapté, j'ai pas pensé à ça. tongue
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

40

VC++ au chiotte!

41

lol très constructif. sad
Je préfére voir par moi même. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

42

Je vais essayer de me trouver un bouqin plus accès code que théorie voir trouver Visual C++ 5.0

le logiciel visua C++ 5 est grave vieux...
déjà, Visual C++ 6 date de 1998, il me semble...
maintenant, on en est à Visual .Net (== visual 7)
=> utilise éventuellement la doc de VC5... mais pas le soft en lui-même... il y a plus récent !
En effet Squale92 typedef est plus adapté

smile
VC++ au chiotte!

pour ce qui est de la programmation ligne de commande, MSVC vaut le reste...
(encore que, le débugguer en interface graphique est TRES pratique !)
pour la programmation fenêtrée WIndows (avec les MFC en particulier), MSVC est tout de même LA référence....
(me suis dl Borland C++ Builder... va falloir que je le teste , pr voir...)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

43

le logiciel visua C++ 5 est grave vieux...
déjà, Visual C++ 6 date de 1998, il me semble...
maintenant, on en est à Visual .Net (== visual 7) => utilise éventuellement la doc de VC5... mais pas le soft en lui-même... il y a plus récent !


c'est le but... cf mon post ou je conseille les booksonline fournit avec VC5, qui ont l'avantage (par rapport à msdn sortie depuis) de ne traiter qu'un seul langage par "book" "online" (ie si t'as tout VS5, les books de VB et de VC ne communiquent pas par défaut, donc quand à partir de VC tu cherches une fonction, on te liste pas toutes celles dispo dans les différents produits de VS)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

44

vince> OK smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

45

JackosKing
: VC++ au chiotte!

Entièrement d'accord!
http://www.mingw.org
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é

46

ouais mais la doc de mingw est moins bien présentée (mais peut-être un peu mieux fournie, je ne saurais pas dire) que celle de VC5
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

47

Tu peux utiliser la même! M$DN est disponible online (consultable gratuitement): http://msdn.microsoft.com.
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é

48

oui mais msdn (apparue à VC6 sous ce nom) a l'énorme défaut de te sortir des résultats tous langages confondus sur chacun des thèmes...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

49

Y a t'il une fonction toute faite qui renvoie la taille d'un fichier car j'ai essayé d'en réaliser une et j'arrive pas à réinitialiser correctement la position dans le fichier, feof crois que je n'ai jamais atteint la fin du fichier. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

50

Ben la méthode de BiHi devrait fonctionner en principe smile
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

51

Oh oui j'avais pas vu, encore merci. smile
Je viens d'apprendre que je pouvais me placer directement à la fin d'un fichier or moi je parcourait tout le fichier octet par octet. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

52

Euh en quoi la doc de VC++ 5.0 est mieux que celle de VC++ .NET ? Si c'est à cause du VB/C#/etc, déjà c'est possible de ne pas installer l'aide pour autre chose que le C++, et en plus on peut toujours filtrer ce qu'on veut ("Visual C++ and related"). D'ailleurs, il y a eu une très nette amélioration de la qualité de la doc entre VC++ 6.0 et VC++ .NET, donc je ne peux que te recommander celle de .NET.

Pour ce qui est de commencer directement ou non par le C++, étant donné que tu codes déjà en C sur TI, je te conseillerais plutôt de bien voir les différences entre PC et TI (c'est-à-dire, en fait, pas grand chose), puis seulement après de te mettre éventuellement au C++.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

53

Ouai ok, mais je préfére programmer beaucoups en C au début puis me mettre progressivement au C++ en faisant un mélange des 2 (C et C++).
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

54

Ouai ok, mais

Ben c ce que je disais aussi, non?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

55

Oui j'aurais pas dû mettre le mais. grin
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

56

J'ai un tout petit problème: (une question que je me suis toujours demandée!)

Je possède une focntion qui demande des paramètres du genre:

void myfonction (unsigned char variable)...

Je voudrais que le paramètre transmit soit directement modifié dans la fonction.
Comment faire??
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

57

lire des tutoriaux happy

58

En C:
#define mafunc(transmit) mafunc_(&transmit)
...
void mafunc_(int *p_transmit) {
#define transmit (*p_transmit)
...
#undef transmit
}


En C++, tu peux utiliser le passage par référence natif: void mafunc_(int &p_transmit).
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é

59

Ah là on voit un avantage du C++, merci Kevin pour les 2 méthodes. wink

Je viens de faire ça:
#define BitWrite(var,start,size) BitWrite_(&var,start,size)

//Ecriture d'un certain nombre de bits dans un octet
unsigned char BitWrite_ (unsigned char *p_var,unsigned char start,unsigned char size)
{
  #define var (*p_var)
  
  var=255;
  
  #undef  var
  
  return 1;
}


Mais le linker me donne une erreur:

[Linker error] undefined reference to `BitWrite(char, unsigned char, unsigned char)'
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

60

Il faut mettre le premier #define quelque part tout en haut de ta source. Par exemple dans un header que tu inclus vers le début.
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é