« INFO916 : Cours de C » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Ligne 27 : Ligne 27 :
* La mémoire
* La mémoire
* Les entrées/sorties (fichier)
* Les entrées/sorties (fichier)

On s'intéressera aux entrées/sorties en fin de cours.

La mémoire est en fait un tableau d'octets (byte en anglais). Un octet est un entier sur 8 bits (bits aussi en anglais) donc compris entre 0 et 255 = 2<sup>8</sup> - 1. Donc mathématiquement un élément de
<math>\frac{\mathbb Z}{256 \mathbb Z}^N</math> où N dépend de l'architecture de la machine (N = 2<sup>30</sup>, N = 2<sup>31</sup> ou N = 2<sup>32</sup>
sur une machine 32 bits et N = 2<sup>48</sup> ou plus sur une machine 64 bits).

Attention: N ne dépend pas de la quantité de mémoire installée dans la machine !


== Pointeurs et adresses ==
== Pointeurs et adresses ==

Version du 13 septembre 2007 à 07:54

Introduction

Qu'est ce qu'un langage de programmation :

Ce sont des intruction indiquant à un ordinateur ce qu'il doit faire.

Un langage est caractérisé par trois éléments :

  • syntaxe : quel sont les programmes valides
  • sémantique : que font faire ces programmes à la machine
  • des usages et conventions : des pratiques usuelles pour mieux programmer

Ce cours portera sur les trois aspects, notemment, on devra être capable d'évaluer un programme C à la main.

Historique et classification des languages

C est un

  • langage impératif et procédural
  • "assembleur" portable

Modèle mémoire et type de données

Modèle mémoire

Afin de pouvoir donner la sémantique du langage, il nous faut un "modèle" simplifié de machine. Essentiellement, un programme C agit sur deux choses:

  • La mémoire
  • Les entrées/sorties (fichier)

On s'intéressera aux entrées/sorties en fin de cours.

La mémoire est en fait un tableau d'octets (byte en anglais). Un octet est un entier sur 8 bits (bits aussi en anglais) donc compris entre 0 et 255 = 28 - 1. Donc mathématiquement un élément de où N dépend de l'architecture de la machine (N = 230, N = 231 ou N = 232 sur une machine 32 bits et N = 248 ou plus sur une machine 64 bits).

Attention: N ne dépend pas de la quantité de mémoire installée dans la machine !

Pointeurs et adresses

Malloc et le tas

Fonctions et prototypes

Opérateurs

Structures de contrôles

Organisation des programmes C (les .h et les .c)

Le préprocesseur

Les types définis par le programmeur

Les entrées/sorties