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 🌍⤴