Obligement - L'Amiga au maximum

Jeudi 29 juin 2017 - 05:40  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Programmation : C - initiation
(Article écrit par Denis Gounelle et extrait d'ANews - novembre 1999)


Oyé, braves gens ! L'histoire du chevalier Raoul, à qui Sire Haniouz confia en l'an de grâce 1260 la noble mission de retrouver un vieux grimoire rempli de formules incantatoires qui lui permettrait de se réconcilier avec les ombrageux Saints Micros que tout son peuple vénérait... et surtout de faire le malin devant les donzelles de la cour !

Après deux jours de route, le chevalier Raoul arriva tout crotté en forêt d'Orléans. Il savait qu'il y trouverait un sorcier dont les pouvoirs étaient grands, même si lui aussi subissait parfois les attaques de ces "enfoirés" de Guru envoyés par Saint Amiga. Lorsqu'il entra dans la grotte, le sorcier était assis devant un cube de verre qui luisait dans la pénombre, marmonnant dans sa barbe :
  • Grrrr ! Ce foutus tas de ferraille est encore planté ! Ras le pompon !
  • Excuse-moi de te déranger dans ta méditation, Ô Grand Sorcier...
Le sorcier se retourna :
  • Salut mon p'tit pote, qu'est-ce qui t'amène ? Ta gente demoiselle t'a plaqué ? Si tu veux, je la fais mourir en 24h dans d'atroces souffrances !
  • Euh... non, ce n'est pas ça. Sire Haniouz voudrait apprendre le langage C, la langue qui permet de communiquer avec les Saints Micros, qu'ils s'appellent Amiga, Atari ou PC et avec ceux de la famille Unix aussi.
  • Eh bien, y'en a qui doutent de rien ! J'te préviens c'est 250 livres tournoi de l'heure, et on raque d'avance. Je prends la Carte Bleue.
Pendant que le chevalier Raoul cherchait la monnaie dans ses poches, le sorcier lui demanda si son Roi possédait un compilateur C.
  • Un compilateur ? Qu'est-ce donc ?
  • Le machin qui transforme un programme source, censé être compréhensible par un être humain, en un programme exécutable censé être compréhensible par les Micros. Il faudra que t'en achète un à la foire. Avec, tu trouveras un parchemin décrivant comment s'en servir : ne compte pas sur moi pour te l'expliquer, y'a pas écrit "SOS mou-du-bulbe" là-haut !
  • Et quand il aura ce compilateur, comment Sire Haniouz fera-t-il pour s'adresser aux Saints ?
Le sorcier alla chercher un livre à la couverture noire, orné d'un "C" majuscule en or sur la tranche et l'ouvrit.
  • Ouvre en grand tes cages à miel, je vais tout te raconter depuis le début. Figure-toi que le compilateur dont je t'ai parlé se compose en fait de plusieurs éléments. Rigolo, non ? Le premier d'entre eux s'appelle le préprocesseur et pour dire vite, son rôle est de traiter toutes les lignes qui commencent par un signe "#" (par exemple "#include", qui permet d'insérer des fichiers de définitions dans les programmes). Nous reviendrons en détail là-dessus plus tard, mais t'as intérêt à commencer tes programmes par la formule suivante : "#include <stdio.h>", sinon le compilateur risque de n'y comprendre que dalle. Le second élément est le compilateur lui-même et le troisième élément est l'éditeur de liens.
Cet éditeur de liens rajoute à ton programme toutes les fonctions prédéfinies que tu peux avoir utilisés dans ton programme.

Car mets-toi bien ça dans le crâne, mon p'tit pote : comme un livre est fait d'un assemblage de chapitres, eux-mêmes assemblage de phrases, un programme est fait d'un assemblage de fonctions, elles-mêmes assemblage d'instructions. Suivant la taille de ton programme, tu pourras écrire plus ou moins de fonctions, ça, c'est toi qui vois ! Une seule fonction est obligatoire, la fonction "main", car c'est par celle-ci que les Saints Micros et Unix commenceront à exécuter ton programme.

D'ailleurs, pour que tu comprennes mieux, je vais te faire écrire ton premier programme. Répète après moi :

#include 
main()
{
	puts("Vive le Beaujolais nouveau!");
}

A l'invite du sorcier, le chevalier Raoul s'installa devant le cube en verre qui trônait sur une table et recopia le programme dans un parchemin qui s'appelait "prog1.c". Puis le compila et l'exécuta en écrivant simplement "prog1".

Le Saint Micro répondit aussitôt : "VIve le Beaujolais nouveau!".

Le sorcier se remit à parler :
  • Cool, je vois que tu piges vite. Regarde donc ce programme, mon gars : j'espère que tu te souviens de ce que je t'ai dit tout à l'heure à propos du "#include", sinon je t'en colle une. Ensuite, tu as écrit la fonction "main", dont je t'ai parlé aussi.
Pour écrire une fonction, il faut indiquer son nom (une suite quelconque de lettres et de chiffres, voire de caractères "soulignés") suivi d'une parenthèse ouvrante et d'une parenthèse fermante. Puis on indique toutes les instructions de cette fonction, entre une accolade ouvrante et une accolade fermante.

Ici, il n'y a qu'une seule instruction, un appel à une fonction que tous les Saints Micros comprennent : la fonction "puts" qui affiche une chaîne de caractères à l'écran.

Comme t'es un grand garçon, je n'ai pas besoin de t'expliquer qu'en langage C, une chaîne de caractères est indiquée entre guillemets, normalement t'as compris tout seul. Tu peux voir aussi qu'on appelle une fonction en indiquant son nom, puis les paramètres qu'on veut lui indiquer entre parenthèses. Comme notre fonction "main" n'a besoin d'aucun paramètre, c'est d'ailleurs pour cela que nous n'avons rien mis entre parenthèses.

Enfin, il faut un point-virgule pour indiquer la fin d'une instruction. Fais gaffe à ne pas oublier ce point-virgule, sinon le compilateur va te prendre la tête super grave.

En voyant l'air soucieux du chevalier, le sorcier comprit que celui-ci se demandait comme il allait se rappeler de tout cela jusqu'à son retour au château de Sire Hanniouz. Aussi, il lui montra qu'il pouvait rajouter quelques annotations :
  • Tout ce que tu écris entre un "/*" (marque de début) et un "*/" (marque de fin) est considéré comme un commentaire, ce qui veut dire que le compilateur s'en tamponne le coquillard avec une patte d'alligator femelle.
Ça te permettra d'expliquer les lignes de programme qui suivent, de désactiver temporairement une partie de programme, ou même de raconter ta vie si tu veux ! Un commentaire peut être placé partout où tu mettrais des espaces et s'étaler sur plusieurs lignes. Par contre, il est interdit d'insérer un commentaire dans un autre commentaire.

Le chevalier Raoul reprit alors la plume et rajouta quelques lignes au parchemin :

/*
 * Voici mon premier programme, que m'a apprit le Grand Sorcier
 * de la forêt d'Orléans pour que je le rapporte à Sire Hanniouz.
*/
#include  /* insertion d'un fichier de définitions standard */
/* définition de la fonction "main" */
main( /* pas de paramètres */ )
{
puts( "Vive le Beaujolais nouveau!") ; /*affichage d'un message */
}

Il finissait d'écrire quand le sorcier jeta un coup d'oeil à sa montre et se leva d'un bond :

Nom d'un bogue, j'vais être en retard ! J'ai rancard avec la sorcière Radada... Je t'en dis pas plus, tu m'as compris, hein ? Allez, débarrasse-moi le plancher, et plus vite que ça ! Jeté dehors à grands coups de pieds au cul, le chevalier Raoul remonta sur son cheval en quatrième vitesse et repartit dans la nuit au galop.

Denis Gounelle, denis.gounelle@wanadoo.fr pour ANews.
Honteusement inspiré de Larcenet et Gaudelette (Fluide Glacial).


[Retour en haut] / [Retour aux articles]