Projet du week-end : s'amuser avec le langage C
- Le langage C est simple mais puissant, au point de permettre d'écrire facilement un système d'exploitation complet
- La syntaxe concise du langage C a influencé de nombreux langages apparus ensuite, comme Java ou Go
- Il a aussi contribué à l'émergence de l'art de l'obfuscation de code
Le concours IOCCC
- Le concours IOCCC est l'un des exemples les plus représentatifs de l'obfuscation de code
- Les participations utilisent souvent des macros de préprocesseur déroutantes, un formatage illogique et des noms de variables peu utiles
- Ce type de code est difficile à lire, mais le C peut être à la fois lisible et déroutant
L'instruction switch
- L'instruction
switch, comme if ou for, n'a pas besoin d'accolades
- Sans accolades, elle ne peut contenir qu'une seule instruction
- Une instruction
switch est fondamentalement une forme sophistiquée de goto
- L'initialisation de variables à l'intérieur d'un
switch peut provoquer des comportements inattendus
Les labels case
- Les labels
case n'ont pas besoin d'être placés au niveau supérieur du bloc switch
- Ils peuvent être utilisés avec une condition
if (0)
- Ils peuvent aussi fonctionner sans instruction
break
Combiner else et if
- Il est possible d'utiliser
else et if pour remplacer une instruction switch
- Plusieurs conditions peuvent être traitées même sans accolades
Extensions GNU
- Il est possible d'obtenir l'adresse d'un label avec l'opérateur
&& et d'y sauter avec goto
- Cela permet de remplacer une instruction
switch
Remplacer la boucle for
- Il est possible d'implémenter une boucle en utilisant des labels dans une déclaration de variable
- C'est spécifique à GCC, mais cela permet tout de même d'écrire en C un code très original et déroutant
Conclusion
- Le langage C offre la possibilité d'écrire un code très original et déroutant
- Ce type de code est difficile à lire, mais il montre la puissance du langage C
L'avis de GN⁺
- Cet article montre bien l'originalité et la complexité du langage C
- Il est utile pour explorer les différentes possibilités d'utilisation du langage C
- Son aspect artistique, comme l'obfuscation de code, est aussi intéressant
- Les exemples utilisant les extensions GNU sont particulièrement uniques et créatifs
- Il peut être un peu difficile pour les développeurs débutants qui apprennent le langage C
Aucun commentaire pour le moment.