Comme nous l'avons dit au chapitre précédent, nous allons à présent nous intéresser au fonction élémentaires que sont #define, mais, surtout, short.
I:\ #define :
Cette fonction est généralement placée au début des
programmes en C. En anglais, le verbe "to define"
signifie "Définir". Cette fonction permettra donc, comme son
nom l'indique, de définir soit une "commande" (comme c'est le cas
dans le Chapitre
I), soit une autre macro, qui pourra ainsi être utilisée dans tout le
programme.
Par exemple, imaginons que vous voulez faire un programme
exactement semblable au précédent, à la différence près que, cette fois ci,
il vous permette d'écrire deux messages différents dans la Status line. Pour
cela, il serait possible d'appeler deux fois la fonction permettant d'écrire
dans la Status Line, mais, ce que nous allons faire ici, c'est définir une
macro permettant de le faire, pour peu que l'on passe en argument (comme en TI-BASIC
!) la chaîne de caractères que l'on souhaite écrire.
La fonction qui permet d'écrire dans la Status Line est :
ST_showHelp("Texte à écrire");
Elle existe aussi sous la forme ST_helpMsg("Texte
à écrire"); mais il vaut mieux utiliser la première.
(Nous verrons pourquoi au Chapitre
III)
On peut ainsi voir que l'argument de cette fonction est de la
forme chaîne de caractères. Prenons l'exemple de programme suivant. C'est en
fait le "Hello World" utilisé dans le chapitre précédent, auquel
nous avons rajouté deus petits ornements :
#define
SAVE_SCREEN
#include <tigcclib.h>
short
_ti92plus,_ti89;
void _main(void)
{
ST_showHelp("Bonjour
! Appuyez sur une touche...");
ngetchx();
clrscr();
printf("Hello
World !");
ST_showHelp("Au
revoir !!! A bientôt !");
ngetchx();
}
Comme vous pouvez le voir, la seule différence entre ce
programme et celui du Chapitre
I est l'ajout de deux fois la fonction ST_showHelp("Texte
à écrire"); qui permettent d'écrire "Bonjour !
Appuyez sur une touche..." et, plus tard, "Au revoir !!! A
bientôt !".
Ce programme pourrait être réécrit de la façon suivante :
#define SAVE_SCREEN
#define ecrire(arg) {ST_showHelp(arg);}
#include <tigcclib.h>
short
_ti92plus,_ti89;
void _main(void)
{
ecrire("Bonjour
! Appuyez sur une touche...");
clrscr();
ngetchx();
printf("Hello
World !");
ecrire("Au
revoir !!! A bientôt !");
ngetchx();
}
Le fait de déclarer une macro de cette façon pour qu'elle puisse être utilisée dans tout le programme peut être utile, mais, dans ce cas, ça ne l'est pas. En effet, si la fonction qui sera utilisée plusieurs fois ne comporte elle-même qu'une seule fonction, la meilleure chose à faire sera d'utiliser directement cette fonction à chaque fois. De cette manière, le code source sera plus facilement compréhensible, et le programme a de fortes chances d'occuper moins d'espace mémoire.
II:\ short :
Le mot "short" est un terme anglais, qui
signifie court. Il sert à déclarer une variable de type nombre entier (qui est
notée int, pour "integer"
en anglais). Les variables de type short
contiennent des valeurs chiffrées, qui peuvent s'étendre de -32768 à 32767.
En effet, ce type de variables est codé sur 2 octets, et peut donc contenir
65536 combinaisons possibles.
Ainsi, imaginons que vous souhaitez utiliser une variable
nommée "mavar" dans un programme, et lui donner, à l'origine, la
valeur 0. Il vous faudra écrire :
short
mavar=0;
Nous verrons juste après ce que signifie
précisément le symbole "=".
Nous avons pu voir, dans tous les exemples utilisés jusqu'ici, l'instruction short _ti92plus,ti89; qui sert, comme nous l'avons expliqué dans le Chapitre I à "dire" au compilateur qu'il devra compiler le programme pour ces deux calculatrices. En fait, je ne sais pas vraiment pourquoi c'est l'instruction de type short qui est utilisé, mais je sais que cette ligne de code est INDISPENSABLE : elle permet de dire au compilateur pour quelle calculatrice il devra créer le programme.
III:\ La fonction principale :
Comme nous l'avons déjà expliqué au Chapitre
précédent, la fonction principale doit systématiquement être nommée
_main.
Cette fonction est déclarée comme étant de type void.
(Elle est précédée du modificateur de type void.).
Cela signifie que cette fonction ne renverra aucun résultat. De plus, elle
n'admet aucun argument, puisque l'argument (placé entre parenthèses à la
suite du nom de la fonction est de type void
lui aussi).
Ceci est parfaitement logique : puisque cette fonction est la
fonction principale, c'est elle qui est active dès le lancement du programme,
et elle ne peut donc pas être lancée par une autre fonction.
En C, passer des arguments à un programme en le
lançant est possible, mais cela ne se gère pas de la même façon dans le code
source qu'en TI-BASIC.
IV:\ Le symbole "=" :
Je pense que vous avez déjà un jour utilisé
l'instruction "STO->" sur
votre TI, avec pour syntaxe :
12->var
En C, pour placer la valeur 12 dans la variable var, il
faut déjà que celle-ci soit déclarée de type short (voir
plus haut), et vous devez utiliser la syntaxe suivante :
var=12;
Si vous souhaitez affecter la valeur 12 à la variable var
dès le début du programme, je vous conseille d'utiliser
short var=0;
var=12;
Plutôt que
short
var=12;
En effet, déclarer une variable ne lui assigne pas
nécessairement la valeur souhaitée. Il faut donc donner la valeur que l'on
veut APRÈS la déclaration de la variable.
Copyright Squale92 & Verstand. Logo et sigle TCI® réservés. Développé pour MS Internet Explorer 5.0 en 1024x768 pixels. Page modifiée le