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

Bénéficiez de statistiques de fréquentations web légères et respectueuses avec Plausible Analytics

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

Pour être visible sur le Web, un site est indispensable, cela va de soi. Mais il est impossible d’en évaluer le succès, ni celui de ses améliorations, sans établir de statistiques de fréquentation : combien de visiteurs ? Combien de pages consultées ? Quel temps passé ? Comment savoir si le nouveau design plaît réellement ? Autant de questions auxquelles Plausible se propose de répondre.

Quarkus : applications Java pour conteneurs

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

Initié par Red Hat, il y a quelques années le projet Quarkus a pris son envol et en est désormais à sa troisième version majeure. Il propose un cadre d’exécution pour une application de Java radicalement différente, où son exécution ultra optimisée en fait un parfait candidat pour le déploiement sur des conteneurs tels que ceux de Docker ou Podman. Quarkus va même encore plus loin, en permettant de transformer l’application Java en un exécutable natif ! Voici une rapide introduction, par la pratique, à cet incroyable framework, qui nous offrira l’opportunité d’illustrer également sa facilité de prise en main.

Body