Aller au contenu

Cours #1 - Introduction au C


AlexMog
 Share

Recommended Posts

Bienvenue pour ce tout premier cours sur le C: L'introduction au C.


Dans cette première partie, nous allons voir de quoi se compose un programme "de base" en C.


I- Avant propos.

J'aimerais vous informer au niveau des cours qui vont suivre: Le but étant de travailler en étant le plus près possible du fonctionnement de la machine, les seules fonctions autorisées (et vous le verrez pendant les exercices) sont les fonctions System (Googlisez tout ça!).

Donc merci de jouer le jeu jusqu'au bout, et de ne pas utiliser de fonctions "interdites" .


II- Notre premier programme.

Nous allons créer notre tout premier programme.

Le but de ce programme est d'afficher une lettre.


Avant tout: Un programme en C est composé de fonctions, et plus particulièrement de la fonction "main" cette fonction est la fonction principale appelée lors du lancement de notre programme.

Commençons donc par créer un fichier test.c qui contient notre main:
 

int main()
{

}

Pour compiler notre programme, nous allons utiliser GCC. Pour des raisons personnelles et utilitaires, je code sous linux, je vais donc vous proposer de suivre tout mes cours sous linux. Vous aurez donc des informations sur la compilation en ligne de commande.


Pour compiler notre programme grâce à GCC, il faut utiliser la commande suivante: gcc test.c -o test

Un fichier "test" viens d'être créé. Vous pouvez le lancer: ./test

Oh! Nous avons compiler notre premier programme en C... Qui ne fait rien (pour l'instant!).


Revenons donc à notre but principal: Créer un programme qui affiche une lettre.

Nous allons donc avoir besoin d'une fonction système d'affichage qui s'appelle "Write" (Lisez le man de Write pour avoir plus d'informations sur cette fonction!).

Créons donc une fonction "my_putchar" qui prendra en argument une variable de type char (caractère) et qui aura pour but de l'afficher:
 

void my_putchar(char c)
{
 write(1, &c, 1);
}

int main()

{
}

Voila! Nous avons notre fonction d'affichage! A present, affichons notre premier caractère!
 

void my_putchar(char c)
{
 write(1, &c, 1);
}

int main()
{
 my_putchar('A');
}

Compilons tout ça... Oh! Lorsqu'on lance notre programme, il affiche un A !


Un autre exemple: HelloWorld.

Le but de ce programme est d'afficher HelloWorld. Reprenons la base précédente:

void my_putchar(char c)
{
 write(1, &c, 1);
}

int main()
{

}

Et affichons notre "HelloWorld":
 

void my_putchar(char c)
{
 write(1, &c, 1);
}

int main()
{
 my_putchar('H');
 my_putchar('e');
 my_putchar('l');
 my_putchar('l');
 my_putchar('o');
 my_putchar('W');
 my_putchar('o');
 my_putchar('r');
 my_putchar('l');
 my_putchar('d');
}

On compile tout ça, et on obtient un joli "HelloWorld"!


III - Les variables de type char[]

Nous allons à présent stocker notre chaine de caractères "HelloWorld" dans un tableau de Char, puis nous allons l'afficher:
 

void my_putchar(char c)
{
 write(1, &c, 1);
}

int main()
{
 char mon_mot[] = "HelloWorld";

 my_putchar(mon_mot[0]); my_putchar(mon_mot[1]); my_putchar(mon_mot[2]); my_putchar(mon_mot[3]); my_putchar(mon_mot[4]); my_putchar(mon_mot[5]); my_putchar(mon_mot[6]); my_putchar(mon_mot[7]); my_putchar(mon_mot[8]); my_putchar(mon_mot[9]);
}

En compilant nous obtenons exactement le même résultat de précédemment.


IV - Les includes.

Avant de commencer avec les includes, sachez que tout ce qui commence par un # sera une commande interprétée par le compilateur.

Les includes permettent d'inclure (logique) le contenu d'un fichier. Il est utilisé pour inclure les .h (headers) dans les fichiers.

Par exemple, la fonction "write" est disponible car le système nous la propose, néanmoins, elle n'est pas déclarée (ce qui provoque un "warning" dans votre code) pour remédier au warning, il suffira d'inclure le header unistd.h. comme ceci:
 

#include <unistd.h>

Les includes system se font avec des <> alors que les includes locales se font avec des "".


Ainsi ma fonction est déclarée, le compilateur sait qu'elle existe, je peux donc l'utiliser sans soucis!


V- Allons un peux plus loin.


A present, affichons notre HelloWorld avec une boucle (je vous laisse la joie de découvrir le fonctionnement de la boucle en cherchant sur le net):
 

void my_putchar(char c)
{
 write(1, &c, 1);
}

int main()
{
 char mon_mot[] = "HelloWorld";

 int i = 0;
 while(mon_mot[i] != '\0')
 {
  my_putchar(mon_mot[i]);
  i = i + 1;
 }
}

Voila! Nous venons de réafficher "HelloWorld". Pourquoi je vérifie la valeur de "mon_mot" dans le while? C'est très simple. Ce qui définit la fin d'une chaine de caractères, c'est le caractère '\0' qui est égal à 0. Or, si un while reçoit 0 en paramètre, il s'arrête. Le while va donc continuer, jusqu'à la fin de la chaine!


Voilà, je ne vous en dirrais pas plus sur ce cours, le but étant de vous donner envie d'en savoir plus par vous même.


A bientôt pour le prochain cours!


Cours écrit par AlexMog. Contact: alexmog [at] live [point] fr
 

  • Upvote 5
Lien vers le commentaire
Partager sur d’autres sites

Tu pourrais aussi montrer s'que ça donne sous windows, car j'imagine que la pluspart des gens qui vont lire ce tuto vont être sur Windows. :P

Comme je l'ai dis sur mon cours d'introduction, je n'utiliserais que Linux pour mes exemples ;) A vous de faire vos tests sur Windows :)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Vous avez collé du contenu avec mise en forme.   Supprimer la mise en forme

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Chargement
 Share

×
×
  • Créer...