Programmation C/Conclusion
Le C est un langage plein de paradoxes. Pouvant aussi bien s'accommoder d'applications bas niveau que proposer des interfaces relativement proches des méthodes orientées objets, ce langage a de quoi séduire un large public. Pourtant, force est de constater qu'il a fait souffrir beaucoup de personnes et pas seulement les programmeurs. Issu de l'époque où la mémoire et les capacités de calcul étaient encore des denrées rares et chères, les pionniers de la programmation ont trop souvent privilégié le côté bas niveau de ce langage. Il en résulta des applications difficilement maintenables, abusant des aspects les plus complexes ou non-portables qu'offre le C pour économiser le moindre cycle processeur. C'est de cette époque que sa réputation « d'assembleur plus compliqué et plus lent que l'assembleur » s'est forgée, éclipsant ses aspects de plus haut niveau, qui pourtant méritent une meilleure estime.
Les fonctions de la bibliothèque standard et surtout le langage lui-même contiennent beaucoup de « pièges », notamment par les comportements indéfinis, ou dépendants de l'implémentation, qui rendent des bogues parfois très difficiles à découvrir. Le programmeur doit comprendre que le C lui fournit de grandes possibilités, mais qu'en retour il lui demande une rigueur d'autant plus grande. Apprivoiser ce langage peut nécessiter une longue phase d'apprentissage. Nous espérons que cet ouvrage vous aura permis d'appréhender le C avec plus de sérénité et de casser certains mythes qui ont décidément la vie bien dure.
Il existe beaucoup de bibliothèques qui proposent au programmeur C des outils pour étendre la bibliothèque standard, et permettent ainsi la gestion d'interfaces graphiques, la programmation réseau, le gestion de l'internationalisation, etc. Celles-ci sont très riches, et bien trop nombreuses pour être abordées dans ce livre. Wikilivres propose des livres étudiant certaines de ces bibliothèques. Pour les autres, Internet et ses moteurs de recherche restent de loin les meilleurs outils pour trouver ce dont vous aurez nécessairement besoin.
Le langage C a su s'adapter, d'Unix aux téléphones mobiles, de l'ISO-646 à Unicode. Le C est aujourd'hui un langage encore très utilisé. C'est "LE" langage de développement de la plupart des micro-contrôleurs actuels. Il a remplacé l'assembleur pour les petites applications. Pour les « grosses » applications tournant sur des OS (Windows, Linux, etc…), il est concurrencé par d'autres langages comme son dérivé le C++, un langage objet encore plus subtil mais permettant tout de même le développement d'applications complexes.

Vi/Prise en main
Trois modes.
"Vi" suit un principe de fonctionnement particulier qui est un frein à son apprentissage, mais qui ensuite lui donne tout son intérêt.
À la différence de beaucoup d'éditeurs, "vi" a trois modes :
Lorsque "vi" est en « mode édition », les touches du clavier correspondent au texte écrit dans le fichier, mais lorsqu'il est en « mode commande », ces mêmes touches correspondent aux commandes de l'éditeur.
Et puisque "vi" est en « mode commande » à son démarrage, cela le rend non opérationnel pour l'édition et perturbe en général le novice.
Le basculement entre les trois modes se fait à l'aide de la touche 'i' (pour "insertion") et la touche <ESC>.
En "vim", on peut utiliser également la touche <INS> à la place de 'i'.
Gvim : exemple d'une fenêtre de "vi"
Une première séance de vi.
Lancez vi sans arguments (tapez codice_1 dans un terminal sous Unix, double-cliquez sous Windows).
L'éditeur s'ouvre en mode commande et aucun fichier n'est ouvert, nous allons donc en ouvrir un pour l'éditer.
La commande permettant d'ouvrir un fichier est codice_2, elle prend en argument le nom du fichier que l'on veut éditer, par exemple :
permet d'éditer le fichier appelé « mon_beau_fichier ».
Maintenant que nous avons un fichier ouvert, nous allons le remplir. Pour cela, nous devons passer en mode édition, ce qui peut être fait avec la commande i (insertion).
Tapez seulement codice_3, vi passe en mode édition, ce qui est signalé par le message :
apparaissant en bas à gauche de la fenêtre. Tapez maintenant un texte que nous allons sauvegarder.
Avant de pouvoir sauvegarder, nous devons retourner au mode commande, ce qui se fait grace à la touche <Echap>.
Maintenant que nous sommes revenus dans le mode commande, nous pouvons sauvegarder avec la commande :w (write en anglais).
Supposons maintenant que nous voulions modifier notre fichier, nous allons avoir besoin de nous déplacer ; dans vi, les déplacements se font uniquement en mode commande et avec les touches h, j, k et l.
Cependant les versions modernes de vi telles que vim permettent de se déplacer avec les flèches et aussi de le faire en mode édition.
Une fois que nous avons effectué nos modifications et sauvegardé, nous pouvons quitter avec la commande :q (quitter).

Vi/Déplacements
Nous avons pour l'instant vu que nous pouvions nous déplacer avec les touches h, j, k et l (ou avec les fléches), chacune de ces commandes permettant de se déplacer d'un caractère (ou d'une ligne) respectivement vers la gauche, le bas, le haut ou la droite. Si nous voulons nous déplacer de plusieurs caractères (ou lignes), il suffit avant la commande de spécifier un nombre. Par exemple pour se déplacer de cinq caractères vers la gauche, il faut taper codice_1.
Cette syntaxe n'est en fait pas spécifique aux commandes de déplacements, mais fonctionne avec toutes les commandes vi.

Français/A et À
Astuce.
A et À
Explication grammaticale.
"a", sans accent, est la troisième personne du singulier à l'indicatif présent du verbe avoir, tandis qu'"à" est une préposition. La construction logique d'une phrase verbale (contenant au minimum un sujet et un verbe, ainsi qu'un complément pour les verbes qui le requièrent, comme avoir) permet donc également de savoir s'il faut écrire ou non un accent.
Exemple :

Français/ET et EST
Astuce.
 ET et EST
Explication grammaticale.
"et" est une conjonction de coordination, tandis que "est" est la troisième personne du singulier du verbe être. On utilise donc "et" pour mettre deux idées, grammaticalement identiques (deux propositions, deux groupes nominaux, deux adverbes, ...) sur un même pied d'égalité, alors que "est" servira soit comme verbe d'état, ou base d'une proposition, soit comme auxiliaire d'une base.
Exemple :

Français/OU et OÙ
Astuce.
OU et OÙ
Explication grammaticale.
"ou", sans accent, est une conjonction de coordination, tandis que "où", avec un accent grave sur le "u", est un mot interrogatif, un pronom relatif ou un pronom interrogatif de lieu. On utilise donc "ou" pour mettre deux idées, grammaticalement identiques (deux propositions, deux groupes nominaux, deux adverbes, ...), en alternative, et "où" pour demander un lieu (mot ou pronom interrogatif) ou bien pour préciser un lieu (pronom relatif).
Exemple :
"Remarques" :

Français/ON et ONT
Astuce.
ON et ONT
Explication grammaticale.
"on" est un pronom indéfini sujet (il sert souvent, en français, à éviter une tournure passive), tandis que "ont" est la troisième personne du pluriel à l'indicatif présent du verbe avoir. La construction logique d'une phrase verbale (contenant au minimum un sujet et un verbe, ainsi qu'un complément pour les verbes qui le requiert, comme avoir) permet donc également de savoir s'il faut ou non un "t".
Exemple :