Heritage

Le C a initialement été crée comme brique logicielle d’un ensemble servant à construire la troisième version du système d’exploitation UNIX. Il s’articule donc avec les programme as dont les spécificités influent le langage C lui même : nom de variables et labels limitées à 8, visibilité externe, labels numérotés dits « de knuth ». Les descripteurs de fichiers stdin, stdout et stderr ouverts par le système d’exploitation viennent de l’environnement UNIX, de même que les arguments d’entrée (argv) et sortie (return depuis main()).

digraphes trigraphes

fonctions k&r

variadiques anciennes

int par defaut, du B

variables auto

extern printf

compilateur à une seule passe (obligé de déclarer les prototypes de fonctions récursives en amont)

variables a 8 caracteres

variables de stack seulement en tete de fonction

absence de portee specifique aux tags des structures

as: interdiction des label et variables a nombres, gestion de extern, retrocompatibilité

beaucoup de comportement indefini a cause de la multitude d’archiotectures (negatif magnitude et signe, complement a un) aujourd’hui la norme en complement a deux reduit ce comportement indéfini.

ENIX: descripteurs de fichiers stdin, stdout, stderr automatiquement ouverts par le système au démarrage du programme.

Manuel turbo C : modern vs classic https://archive.org/details/bitsavers_borlandtur1987_10489658/page/n147/mode/2up?view=theater 🌍⤴