Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

codage-geek !

Un blog traitant des systèmes électronique, programmation, sciences, tout ! Très accessible, facile à comprendre !

02 Mar

Langage C : Etude d'une 1ère fonction !

Publié par Sullivan David  - Catégories :  #Programmation C, #Tutoriel

my_putchar : Affichez un caractère !

my_putchar : Affichez un caractère !

Alors, vous avez bien révisé les quelques rappels syntaxiques que je vous ai mis sur le JOUR : 1 ? Tout c'est bien passé ?
Au moindre problème n'hésitez pas à me contacter ou à mettre un commentaire, moi ou d'autres se feront un plaisir de vous répondre !

Aujourd'hui nous allons commencer à nous débarrasser du 'printf', la fonction qui sert à écrire en C !
Mais tout ne va pas se faire en un seul cours, loin de là, il y a beaucoup de travail avant d'y parvenir, mais aujourd'hui sa ne va pas être très compliqué vous allez voir :) !

Je vous ai dis que l'on pouvais stocker dans la mémoire des caractères, donc des lettres. Attention, ne confondez pas une lettre, avec un mot !

En programmation, un caractère est clairement UNE SEULE LETTRE.
Un mot est formé par ce que l'on appelle une CHAINE DE
CARACTÈRES.

Ce qui nous intéresse aujourd'hui, c'est de faire afficher à la console de l'ordinateur une lettre, sans utiliser de printf, sans avoir besoin d'inclure une bibliothèque telle que stdio.h, stdlib.h, rien !
Et vous savez où est l'intérêt ? Sa allège le programme. En effet, le printf est un ensemble de beaucoup de fonctions, dont certaines ne nous servent pas dans certains cas d'utilisation. Alors autant inclure que si qui nous intéresse, et surtout en profiter pour les coder et les comprendre.

=======================================================================

Le prototype de la fonction aujourd'hui est le suivant :

void my_putchar(char c);

Vous noterez au passage la tabulation entre le type et le nom de ma fonction, une petite norme (: .

Comme son nom l'indique, cette fonction est censée écrire un caractère (put char). Elle est du type void car elle ne retourne rien, elle se contente d'écrire.

Je suis conscient que vous ne pouvez pas inventer son fonctionnement, c'est pourquoi je vais vous donner directement la fonction complète. Elle vous servira à essayer de relever un petit défi qui sera résolu dans le JOUR : 3 .

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

 

void : Déclaration de la fonction qui signifie que son résultat n'est ni un entier (int) ni un charactère(char) 
char: Déclaration de la variable manipulée dans la fonction. Il s'agit d'un caractère.
write: Appel de la fonction système write() qui permet d'écrire directement sur l'entrée standard.
1 : file descriptor
&c : Pointeur sur le caractère
1 : Taille de la chaine que l'on cherche à afficher en l'occurence ici un seul caractère.

-------------------------------------------------------------------------------------------------------

Pour afficher un caractère maintenant que nous avons notre fonction, il faut créer l'inévitable main, et y appeler la fonction, comme suit : 

void    my_putchar(char c)
{
    write(1, &c, 1); // write écrit sur la entrée standard
​}

 

int    main(void)
{
  char    mon_caractere; // Je déclare la variable
  mon_caractere = 'z';   // J'attribue la lettre z à la variable
 
  my_putchar(mon_caractere); // J'appel la fonction avec la variable en 
                             //parametre

 return(0); // fin
}

 

Et la console nous affiche bien :         z

Le principe de cette fonction n'est pas très dure à comprendre, elle est fondamentale.
Elle est l'élément principale qui sert à écrire une CHAINE DE CARACTERES.
 

La prochaine fois nous abroderont le sujet des chaines de caractères justement, nous verront comment elles sont composées, et comment se servir de my_putchar pour faire une chaine de caractère !

Un petit exercice d'entrainement.
Afficher avec le my_putchar la lettre U, et faite un retour à la ligne. Les retours à la ligne sont fait grâce à \n .

Je vous donnerai la solution au JOUR : 3 ... Bonne chance !

À propos

Un blog traitant des systèmes électronique, programmation, sciences, tout ! Très accessible, facile à comprendre !