LICENCE DE MATHEMATIQUES


INFORMATIQUE
support de cours


Par Philippe ROLLAND

bibliographie:

Le language C. Kernigan et Ritchie. Masson
La programmation sous UNIX. Rifflet. MacGraw-Hill
Manuel de l'utilisateur de Turbo C. Delanoë. Masson
CodeWarrior: Pascal Language Reference
Introduction au language C. Jean-Yves Martin. Support de cours : Ecole Centrale de Nantes.
Informatique : Module i1. Robbes, Tallineau, Tartier. Support de cours : Université de Nantes.
Encyclopedia Universalis


Sommaire

    A. GENERALITE SUR LE C

  1. Fonctions
  2. Variables
  3. Données simples et structurées
  4. Structures conditionnelles et répétitives
  5. Pointeurs et tableaux


1. Fonctions

On décrit sommairement des propriétés des fonctions en C.
Toutes les fonctions peuvent être appelées de façon recurssives. Leurs variables locales sont alors recréées à chaque appel. Ces variables sont dites automatiques.
Les définitions des fonctions ne peuvent pas être emboitées. Ce qui est accepté par le langage Pascal, que cela soit pour les procédures ou les fonctions.
Les déclarations peuvent être déclarées dans un bloc structurés. En C, un bloc est un couple d'accolade ouvrante fermante (ie { et } ) ; c'est-à-dire l'équivalent du begin-end en Pascal. A noter que cela était impossible en Pascal.
Les fonctions peuvent être compilées séparement.
Retour


2. Variables

On décrit sommairement les trois caractéristiques des variables en C (porté,propiété,type).

Les variables peuvent avoir des portées différentes. Elles peuvent être :

interne à une fonction
externe, mais
connu seulement d'un seul fichier
globale sur tout le projet
D'autre part les variables mis à part leur type, peuvent avoir certaines propriétées :

automatique
statique
register
NOTE: en C, c'est le compilateur qui attribuera le registre associé à une variable déclarée register, ie ce n'est pas le programmeur.

Finallement, les variables ont un type. Ce type peut être soit fondamentale soit plus complexe, ie basé sur une structure, une réunion, pointeur, ...
Les types fonfamentaux (norme ANSI : American National Standard Institut) sont :

9 bits
TypeDEC PDP-11HoneyWell 6000
char8 bits
int1636
short1636
long3236
float3236
double6472

Retour


3. Données simples et structurées

Les objets fondamentaux qui constituent les données sont :
les caractères (char)
les entiers (int, short, long, (unsigned)) : par exemple (int sur 32 bits, short sur 16, long sur 32). Les unsigned sont des entiers (int, short, ou long) positifs.
les nombres à virgules flotante (float, double)
A partir de ces objets fondamentaux, à l'aide de constructeurs tel que

structures
réunions
fonctions
pointeurs et tableaux
on peut construire des données structurées.

Retour


4. Structures conditionnelles et répétitives

Les structures fondamentales en C-ANSI pour des programmes structurés sont les suivantes :

Les conditionnelles :
if <proposition> {action(s)}
if <proposition> {action(s)} else {action(s)_bis}
switch (<variable>) { case <valeur_variable> : action(s) }
Les répétitives :
while <proposition> { action(s)}
for (exp1 ; exp2 ; exp3) { action(s) }

Retour


5. Pointeurs et tableaux

Le langage C fournit des pointeurs et la possibilité de faire du calcul d'adresse. On rappele, en C, le principe de transfert de paramétres pour une fonction (en Pascal, ces remarques restent aussi valide).
Les arguments des fonctions sont transmis en recopiant LA VALEUR de l'argument. Ce qui implique qu'il est impossible pour la fonction appelée de modifier l'argument dans le programme appelant.
Quand on veut réaliser un appel par variable, on fournit explicitement l'adresse de cette variable ; ie un pointeur.
On note que les noms de tableaux en C, correspondent à l'adresse d'origine de ces tableaux.

Retour