Files
Cours-C/ch000-presentation.md
2026-04-09 15:41:00 +02:00

3.5 KiB
Raw Permalink Blame History

Chapitre 0 — Introduction au langage C

0.1 Présentation du langage C

Le langage C est un langage de programmation bas niveau.
Cela signifie quil est proche du fonctionnement réel de la machine.

Concrètement, un programme C manipule directement la mémoire.
Chaque variable correspond à une zone mémoire précise.

Le programmeur peut lire et écrire à des adresses mémoire.
Cela se fait à laide des pointeurs.

Le C permet aussi de manipuler les bits.
On peut contrôler précisément la représentation des données.

Par exemple, un entier est stocké sous forme binaire.
Le programmeur peut agir directement sur ces bits.

Le C ne masque pas le fonctionnement du processeur.
Il expose des concepts proches de lassembleur.

Par exemple :

  • la pile (stack)
  • le tas (heap)
  • les appels de fonctions
  • la mémoire brute

Le C ne fournit pas de protections automatiques.

Cela signifie que le langage ne vérifie pas certains comportements dangereux.

Par exemple :

  • accès hors limites dun tableau
  • utilisation dun pointeur invalide
  • dépassement dentier
  • division par zéro

Ces situations peuvent provoquer un comportement indéfini.

Le programme peut :

  • planter
  • produire un résultat incorrect
  • sembler fonctionner mais être corrompu

Le C ne possède pas de ramasse-miettes.

Un ramasse-miettes (garbage collector) est un système automatique.
Il libère la mémoire qui nest plus utilisée.

Dans certains langages, cette gestion est automatique.
En C, elle est manuelle.

Lorsque lon alloue de la mémoire :

  • avec malloc
  • ou calloc

Il faut la libérer avec free.

Sinon :

  • fuite mémoire
  • crash
  • comportement indéfini

Le C donne un contrôle total au programmeur.
Mais cela demande de la rigueur.


Exemple 1 — Programme minimal

int main(void)
{
    // Point d'entrée du programme
    return 0;
}

Exemple 2 — Affichage simple

#include <stdio.h>

int main(void)
{
    // Affiche un message
    printf("Bonjour\n");
    return 0;
}

Exemple 3 — Calcul simple

#include <stdio.h>

int main(void)
{
    int a = 5;
    int b = 3;
    int resultat = a + b;

    printf("Resultat: %d\n", resultat);
    return 0;
}

0.2 Historique et cas dusage

Le langage C a été créé dans les années 1970.
Il a été conçu pour écrire des systèmes dexploitation.

Le système UNIX a été écrit en C.

Aujourdhui, le C est utilisé dans :

  • systèmes dexploitation
  • systèmes embarqués
  • bibliothèques système
  • moteurs haute performance

0.3 Compilation vs interprétation

Un programme C est compilé.

Cela signifie quil est transformé en code machine avant exécution.

Étapes :

  1. Préprocesseur
  2. Compilation
  3. Linking

0.4 Structure générale dun programme C

Un programme C contient :

  • des fonctions
  • des variables
  • des instructions

La fonction principale est main.


0.5 Premier programme

#include <stdio.h>

int main(void)
{
    printf("Hello, world\n");
    return 0;
}

0.6 Programme minimal et printf

Un programme commence toujours par main.


Exemple 1

int main(void)
{
    return 0;
}

Exemple 2

#include <stdio.h>

int main(void)
{
    printf("Hello, world\n");
    return 0;
}

Exemple 3

#include <stdio.h>

int main(void)
{
    int valeur = 42;

    printf("Valeur = %d\n", valeur);

    return 0;
}