01 LangageC 4PagesParPage

Pages: 21 (7215 mots) Publié le: 27 avril 2015
´ em´
Un langage. . . El´
ents. . . Particularit´
e. . . La biblioth`
eque standard Makefile

´ em´
Un langage. . . El´
ents. . . Particularit´
e. . . La biblioth`
eque standard Makefile

Plan
Un langage compil´e et modulaire
´ ements de base du langage
El´
La base
Les pointeurs
Entr´ee / Sortie standard
Les types composites
Les fichiers
3 Particularit´
es du langage
Le programme principal
Lesmacros
param´etr´es
(macro-fonction)
Pointeurs de fonction
Les biblioth`eques
Mots cl´es
Arithm´etique sur les pointeurs
Allocation statique et dynamique
Le langage C - v2.4.1
Les chaˆınes de caract`eres
1

4

2

Langage C
Nicolas Delestre

Le langage C - v2.4.1

1 / 82

´ em´
Un langage. . . El´
ents. . . Particularit´
e. . . La biblioth`
eque standard Makefile

5

La biblioth`eque standardPr´econditions : assert.h
Fonction d’arit´e variable : stdarg.h
Makefile

2 / 82

´ em´
Un langage. . . El´
ents. . . Particularit´
e. . . La biblioth`
eque standard Makefile

Un langage compil´e 1 / 3

Un langage compil´e 2 / 3

Le C est un langage compil´e
Les compilateurs C transforment un programme C (fichier suffix´e par
.c) en programme objet (fichier suffix´e par .o) en deux phases :
1

Lepr´eprocesseur agit sur les macros (commandes pr´ec´ed´ees d’un #)
et transforme le code source C en un autre code source C (ne
contenant plus aucune macro) en rempla¸cant le code macro par son
´evaluation

Par exemple pour compiler le programme helloworld.c suivant, il faut
taper gcc -c helloworld.c, on obtient alors le fichier helloworld.o
#include

Par exemple si le code C contientl’instruction #define PI 3.14159,
le pr´eprocesseur remplacera dans le code source la chaˆıne de
caract`eres ”PI” par la chaˆıne de caract`eres ”3.14159” `
a partir de la
position du #define
2

int main(){
printf("Hello world\n");
}

Le compilateur transforme ce deuxi`eme code source C en programme
machine (nomm´e code objet)

Sous Linux (et g´en´eralement sous unix), on utilise le compilateur
gcc (GNU CCompiler) avec l’option -c pour compiler

Le langage C - v2.4.1

3 / 82

Le langage C - v2.4.1

4 / 82

´ em´
Un langage. . . El´
ents. . . Particularit´
e. . . La biblioth`
eque standard Makefile

Les modules, les biblioth`eques

a

´ em´
Un langage. . . El´
ents. . . Particularit´
e. . . La biblioth`
eque standard Makefile

Les modules, les biblioth`eques a

1/2

a. D´efinition propre `
a ce cours2/2

a. D´efinition propre `
a ce cours

Un langage bas´e sur les modules et les biblioth`eques
Le langage C utilise le concept de module (.o) et de biblioth`eque (.a
ou .so) qui permet de cr´eer et d’utiliser des biblioth`eques de
fonctions qui peuvent ˆetre utilis´ees dans plusieurs programmes
De ce fait, le code objet produit par le compilateur n’est pas un
programme ex´ecutable car il utilisecertainement des fonctions
d´efinies dans des modules/biblioth`eques

Par exemple pour linker helloworld.o on tape gcc helloworld.o -lc
Le programme ex´ecutable a.out est alors cr´e´e
Si `a la place de l’ex´ecutable a.out, on veut obtenir l’excutable
helloworld il faut utiliser l’option -o suivi du nom du fichier
ex´ecutable d´esir´e (ici -o helloworld)

Pour le rendre ex´ecutable il faut le lieraux modules/biblioth`eques
ad´equates : c’est ce que l’on nomme l’´edition des liens (ou linkage)
Cette ´edition des liens s’effectue toujours avec gcc suivi des codes
objets du programme et des modules utilis´es. Les biblioth`eques sont
incluses avec l’option -lXX (XX = nom de la biblioth`eque, sous
UNIX pr´esence de libXX.a ou libXX.so)
Le langage C - v2.4.1

5 / 82

´ em´
Un langage. . . El´ents. . . Particularit´
e. . . La biblioth`
eque standard Makefile

Le langage C - v2.4.1

6 / 82

´ em´
Un langage. . . El´
e. . . La biblioth`
eque standard Makefile
ents. . . Particularit´

Quelques remarques

Les types simples
Le C propose les types simples suivants :
int a , float, double, char b

On peut donc suivre les r`egles de traduction suivantes :

Sous UNIX, la libc est par...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • Langagec
  • 01
  • 01
  • 01
  • 01
  • 01
  • 01
  • 01

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !