Je voulais me remettre de ma déconvenue de la dernière fois avec les constantes incompréhensibles du simulateur de vol de M. Banks. Je me tourne aujourd'hui vers quelque chose qui me semble plus simple, et dont les constantes sont bien connues : une calculatrice multifonction supportant les quatre opérations de base (avec respect des précédences), les parenthèses et quelques fonctions mathématiques classiques. Cette entrée a gagné le concours de l'IOCCC [1] en 2011 dans la catégorie « Best self documenting program ».
1. Version initiale
Voici la version proposée à l'IOCCC [1], sans changement, que vous pouvez retrouver sur http://forma3dev.fr/vieux-barbu/ :
#include <stdio.h>
#include <math.h>
#define clear 1;if(c>=11)
{c=0;sscanf(_,"%lf%c",&r,&c);while(*++_-c);}\
else if(argc>=4&&!main(4-(*_++==’(‘),argv))_++;g:c+=
#define puts(d,e) return 0;}{double a;int b;char c=(argc<4?d)&15;\
b=(*_%__LINE__+7)%9*(3*e>>c&1);c+=
#define I(d) (r);if(argc<4&&*#d==*_){a=r;r=usage?r*a:r+a;goto...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première