static, switch, et cætera

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
70
Mois de parution
janvier 2014
Domaines


Résumé
Certaines fonctionnalités mal aimées du C tendent à être également mal connues. Elles recèlent cependant souvent des applications inattendues.

1. Un switch revisité

La grammaire du C est volontairement la plus simple possible. Ainsi, beaucoup d'éléments lexicaux sont repris dans plusieurs constructions du langage. Par exemple, dans la représentation BNF [1] de la grammaire, on retrouve stat un grand nombre de fois. Ce symbole représente un statement qui est soit une expression, soit un label suivi d'un statement, soit une sélection (if, switch), soit une itération (for, do, while), soit un bloc ({ }), soit un saut (goto, continue, return, ...).

Cela permet ensuite de définir l'une des formes du if (celle sans le else) ainsi :

if (expr) stat

Ce qui indique que toutes les utilisations suivantes sont correctes grammaticalement parlant (certaines formes ne sont pas particulièrement recommandées pour écrire du code lisible !) :

if (a == 1) a = 2;

if (a == 1) label: a = 2;

if (a == 1) if (b == 1) a = 0;

if (a == 1) while (a < 20) a = f(a);

if (a == 1) { a = 2; }

if (a == 1) return 5;

De la même façon, l'une des huit (!) formes de...

Cet article est réservé aux abonnés. Il vous reste 93% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Mise au point à distance avec GDB

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Le débogueur GDB est un outil indispensable pour la mise au point de programmes, a fortiori dans le cas du développement croisé (mise au point à distance ou « remote debug »). Dans cet article, nous allons voir comment mettre en place différentes solutions suivant plusieurs cas de figure (programme en espace utilisateur, noyau Linux statique ou pilote en espace noyau). Afin de permettre au plus grand nombre de lecteurs de tester les exemples décrits, nous utiliserons l’émulateur QEMU (et Buildroot) pour les démonstrations.

Jouons avec l'obfuscation de code

Magazine
Marque
GNU/Linux Magazine
Numéro
242
Mois de parution
novembre 2020
Domaines
Résumé

Rendre son code illisible lorsque l'on prêche pour l'open source, c'est le mal incarné. Toutefois, il est possible de concevoir que dans certains cas, on souhaite obscurcir des parties d'un code et, surtout d'un point de vue purement technique, cela peut se révéler intéressant.

Le point sur le débogage en Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Il n'existe pas une unique façon de déboguer du code en Python. Dans cet article, nous allons faire un rapide tour des différentes techniques qui s'offrent à vous pour traquer les bugs.

Les bases de LaTeX sous GNU/Linux et Windows

Magazine
Marque
GNU/Linux Magazine
Numéro
242
Mois de parution
novembre 2020
Domaines
Résumé

Et si nous retournions aux sources ? Des articles sont régulièrement consacrés à LaTeX dans ce magazine, mais comment les utiliser si l'on part de zéro ? Dans cet article, je vous propose de voir ou revoir comment installer LaTeX, configurer un éditeur et gérer les extensions/paquets pour une utilisation sous GNU/Linux ou Windows. Une sorte de guide de survie pour prof de maths, en cas d'obligation d'enseignement à distance...

Débugage facile avec Sentry

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Nous le savons tous, aucun code n’est exempt de bugs. Nous avons beau écrire tous les tests unitaires du monde, tous les tests fonctionnels, avoir une couverture du code par nos tests de 200 %, il y a toujours des bugs qui passent à travers les mailles du filet. Sentry est là pour vous aider à les trouver et à les corriger grâce à vos utilisateurs, et ce, sans qu’ils ne s’en rendent compte.