Notes de cours de langage C
UJF – JF Nicaud
Ces notes de cours sont téléchargeables à l’adresse : http://membres-lig.imag.fr/nicaud/
Nombreux livres, voir bibliothèque. Utiliser des livres pas trop vieux qui suivent la norme ANSI C.
Le livre des auteurs : Kernighan et Ritchie
Des livres gratuits téléchargeables sur Internet, dont :
Bernard Cassagne, Introduction au langage C
http://www-clips.imag.fr/commun/bernard.cassagne/Introduction_ANSI_C.html
Environnement de développement intégré pour Windows :
lcc : gratuit
pour usages non commerciaux, téléchargeable
à :
http://www.cs.virginia.edu/%7Elcc-win32/
Dev-C++ : gratuit
http://www.bloodshed.net/devcpp.html
http://www.01net.com/outils/telecharger/windows/Programmation/langage/fiches/2327.html
Club d'entraide des développeurs francophones
http://www.developpez.com
des forums, des livres, des compilateurs, des FAQ…
int main()
/*
entête du programme principal */
{
int n1,
n2, somme;
/* déclaration de 3
variables entières */
printf("Calcul
de la somme de 2 nombres entiers\n");
/*
affichage à l’écran */
printf("Donner
le premier nombre\n");
/*
affichage à l’écran */
scanf("%d",&n1);
/*
saisie au clavier */
printf("Donner
le deuxieme nombre\n");
/*
affichage à l’écran */
scanf("%d",&n2);
/*
saisie au clavier */
somme =
n1 + n2;
/*
calcul */
printf("La
somme est %d\n",somme);
/*
affichage à l’écran du résultat */
/* du traitement */
}
Phase 1 : Saisie du programme dans un fichier
C’est le fichier source que l’on crée avec un éditeur de texte, Emacs par exemple.
Phase 2 : Compilation
Le compilateur analyse le programme source et indique les erreurs.
S’il n’y a pas d’erreur, il produit un programme objet composé d’instructions pour le processeur.
Phase 3 : Edition de liens
L’éditeur de lien associe le programme objet à des programmes objets de la bibliothèque pour produire un programme exécutable.
Phase 4 : Exécution
Le programme exécutable est exécuté.
On teste le programme pour détecter des erreurs. S’il y en a, on modifie le programme source pour les corriger.
Contexte console
En environnement console avec un éditeur de texte comme Emacs et un compilateur comme gcc (qui fait aussi l’édition des liens).
Contexte EDI
On dispose d’un environnement de développement intégré comportant éditeur de texte, compilateur et éditeur de liens.
Exemple : lcc pour Windows, utilisé
dans le cours
Entête fonction main
{
déclaration
des
variables
instructions effectuant les traitements
}
Un commentaire est une partie ignorée par le compilateur.
Il commence par /* et se termine par */
Il peut utiliser plusieurs lignes.
Les commentaires ne peuvent pas s’imbriquer.
Déclaration avec éventuellement affectation en même temps
int n1, a = 4, b = 8, c = -5 ;
int mot-clé (mot réservé) indiquant la déclaration d’un entier (integer)
Le nom d’une variable est un identificateur : succession de lettres, chiffres et "_" ne commençant pas par un chiffre.
Une variable entière correspond à un emplacement mémoire de n octets généralement (n dépend de la machine) avec représentation en binaire.
Plus petit entier INT_MIN et Plus grand entier INT_MAX (bibliothèque limits.h)
Avec la représentation fréquente sur 4 octets, on a :
INT_MIN = -2 147 483 648
INT_MAX = 2 147 483 647
Opérateurs pour faire des calculs :
- opérateurs binaires infixés + – de priorité 12
- opérateurs binaires infixés * / % de priorité 13
- opérateurs unaires préfixés + – de priorité 14
- parenthèses.
A priorité égale pour les binaires, opérations effectuées de gauche à droite.
Ex : -a + b / 3 * c est équivalent à (-a) + ( (b / 3) * c)
% est l’opérateur modulo :
n % p est le reste de la division entière de n par p.
Pas de puissance dans le langage de base, mais la fonction pow de bibliothèque math.h
pow(n,p) est « n à la puissance p ».
Débordements dans les calculs, selon les options de compilation :
- calcul erroné,
- erreur.
Syntaxe :
<variable> = <expression> ;
Exemple :
somme = n1 + n2;
On dit aussi « écriture à l’écran ».
Fonction de la bibiothèque stdio.h
Syntaxe :
printf(<chaine_de_formatage>,
<expression1>,
<expression2>, ...);
Exemple :
printf("La somme de %d et %d est %d\n", a, b, a +
b) ;
le premier %d indique de placer à cet endroit la première expression en représentation décimale, analogue pour le deuxième et le troisième
\n dit d’aller à la ligne
On dit aussi « lecture au clavier ».
Fonction de la bibiothèque stdio.h
Syntaxe :
scanf(<chaine_de_formatage>,
&<variable1>, &<variable2>,
...);
Exemple :
scanf("%d %d", &a, &b) ;
le premier %d indique de saisir un nombre ne décimal pour le mettre dans la première variable, analogue pour le deuxième
Les "&" seront expliqués plus tard. Ne pas les oublier.
Le langage C est sensible à la casse : N1 est différent de n1