GNU/Linux Magazine Hors-série N°
Numéro
70

Langage C

Temporalité
Janvier/Février 2014
Image v3
Langage C
Article mis en avant

Résumé

« The power of assembly language and the convenience of… assembly language »

C'est en ces mots que le regretté Dennis Ritchie a un jour décrit le langage qu'il a lui-même créé en 1972 avec, par la suite, la participation de Ken Thompson et Brian Kernighan que l'on peut aisément qualifier, tous trois, comme étant également les pères d'UNIX. Le C, ce langage de programmation impérative, procédurale et structurée est, ni plus, ni moins, pour le monde de l'informatique, ce qu'est la roue pour le monde moderne.

Dans ce numéro...


Découvrez le langage de référence de la programmation impérative.
Même si elles ne font pas vraiment partie du langage C à proprement parler, puisqu'elles appartiennent au préprocesseur, les macros sont des outils qui peuvent s'avérer fort pratiques.
Les spécificateurs de format ou format specifiers sont ces éléments (%) permettant, comme leur nom l'indique, de spécifier la manière de formater une donnée avec certaines fonctions comme scanf() et printf(). Cette dernière, rappelons-le, est utilisée pour transférer du texte, des valeurs ou des résultats d'expressions sur la sortie standard STDOUT.
Certaines fonctionnalités mal aimées du C tendent à être également mal connues. Elles recèlent cependant souvent des applications inattendues.
Lors d'un développement, vous êtes peut-être déjà tombé sur le message d'erreur incompréhensible suivant : « Dereferencing type-punned pointer will break strict-aliasing rules ». Ce qui pourrait se traduire par « Déréférencer un pointeur pointant sur deux types différents rompt les règles d'aliasing strictes ». Ce qui n'est toujours pas très clair.
Le langage C dispose d'opérateurs permettant de tester, modifier et effectuer des opérations au niveau du bit. Ces opérations sont souvent réservées à des utilisations restreintes, alors qu'elles sont ultra-rapides et ont des applications quelques fois insoupçonnées. Une restriction toutefois est que ces opérateurs ne s'appliquent qu'à des entiers (la plupart du temps non signés).
Le point d'entrée d'un programme en C est la fonction main(). Il existe cependant des situations où l'on souhaiterait procéder à un ensemble d'actions, soit avant, soit après main(). Ceci peut être utile, par exemple, lorsqu'il y a systématiquement des opérations à appliquer pour bien finir un programme.
Dans une série d'articles dédiés à l'IDE Eclipse [GLMF n°159], je vous ai présenté la programmation graphique en C++ avec la librairie graphique GTK+. Nous allons ici l’utiliser avec le langage C, langage natif de ce toolkit.
Vous avez besoin d'une bibliothèque C graphique, capable d'utiliser plusieurs types de systèmes d'affichage (X, framebuffer, OpenGL, etc.), fonctionnant aussi bien sur PC que sur système embarqué, incluant des fonctionnalités avancées comme un système de description d'interfaces, plusieurs langages de scripts intégrés, le tout reposant sur des fondations solides et des bibliothèques utilitaires adaptées ? Ne cherchez plus ! C'est des EFL qu'il s'agit !
Lors du dernier numéro hors-série sur le langage C, nous vous avions proposé d'étendre Python avec des modules C. Nous avions alors introduit quelques bases. Aujourd'hui, nous vous proposons le contraire : utiliser des modules Python au sein de vos applications en C.
Si votre projet prend de l'ampleur, qu'il risque d'être utilisé dans d'autres pays que le vôtre, il convient alors de présenter une interface dans la langue de l'utilisateur. Pour cela, il faut, entre autres, traduire tous les intitulés textes de votre programme. On dit que l'on « régionalise » l'application. Voyons quels sont les outils qui vont nous aider dans cette tâche...

Magazines précédents

Exploiter au mieux votre projet open source
GNU/Linux-Magazine Hors-série N°69
Exploiter au mieux votre projet open source
MySQL et Bases de données
GNU/Linux-Magazine Hors-série N°67
MySQL et bases de données
Apache, le guide complet
GNU/Linux-Magazine Hors-série N°66
Apache, le guide complet
Python avancé
GNU/Linux-Magazine Hors-série N°65
Python avancé

Les derniers articles Premiums

Les derniers articles Premium

Le combo gagnant de la virtualisation : QEMU et KVM

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

C’est un fait : la virtualisation est partout ! Que ce soit pour la flexibilité des systèmes ou bien leur sécurité, l’adoption de la virtualisation augmente dans toutes les organisations depuis des années. Dans cet article, nous allons nous focaliser sur deux technologies : QEMU et KVM. En combinant les deux, il est possible de créer des environnements de virtualisation très robustes.

Brève introduction pratique à ZFS

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Il est grand temps de passer à un système de fichiers plus robuste et performant : ZFS. Avec ses fonctionnalités avancées, il assure une intégrité des données inégalée et simplifie la gestion des volumes de stockage. Il permet aussi de faire des snapshots, des clones, et de la déduplication, il est donc la solution idéale pour les environnements de stockage critiques. Découvrons ensemble pourquoi ZFS est LE choix incontournable pour l'avenir du stockage de données.

Générez votre serveur JEE sur-mesure avec Wildfly Glow

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Et, si, en une ligne de commandes, on pouvait reconstruire son serveur JEE pour qu’il soit configuré, sur mesure, pour les besoins des applications qu’il embarque ? Et si on pouvait aller encore plus loin, en distribuant l’ensemble, assemblé sous la forme d’un jar exécutable ? Et si on pouvait même déployer le tout, automatiquement, sur OpenShift ? Grâce à Wildfly Glow [1], c’est possible ! Tout du moins, pour le serveur JEE open source Wildfly [2]. Démonstration dans cet article.

Body