Oppure

Loading
25/11/15 14:00
R0gerBlack
Salve ragazzi, mi sono imbattuto sul sito di IOCCC aka International Obfuscated C Code contest per curiosità di come NON programmare (XD) e mi sono imbattuto in programmi davvero strambi...

Tipo questo è uno dei tanti (sì, è scritto in C), però mi ha particolarmente colpito, non si vede nemmeno la funzione main (nonè l'unico) xD.
Che ne pensate? Qualcuno di voi saprebbe spiegare come funziona? o.O

#include <stdio.h>
#define _$()                                         0
#define __$()                                        1
#define _$_()                                        10
#define $_$(a)                                       a;
#define $_(b,a)                                     a##b
#define r(a,b)                                  r##a##b##urn 0;
#define m(b,a,x) };                               m##a##b##n
#define $(b,a,x)                                  a##b##x
#define                                         ____ + __
#define $_$_                                         =
#define __(...)  (                              $(n,i,t))(\
$(ze,si,of)(($(n,i,t)[]) { _$(), ##__VA_ARGS__})/$(ze,si,of) ($(n,i,t))-__$())
$(n,i,t)  (*___)   ($(n,i,t))  = $(tch,  pu,  ar);   $(ub,do,le) _<::> $_$_ <%

         -2, 1, -1.3, 1.3     /* <-- Configure here: X1, X2, Y1, Y2 */

,_$(), _$(),_$(),_$(),_$() ,_$(), __( ',',',',',' ,',' ,',')  * _$_() ,( _$_()
- __('_','_')) * _$_(), _$(),_$(),_$(),__('_','_')*__('_','_', '_','_', '_') *
__('_','_', '_','_', '_')*__('_','_', '_','_', '_')+__('_','_', '_','_' , '_')
,__('_','_','_','_','_','_','_','_',), _$() m(i,a,u)($(n,i,t) $_)<% $_ (f,i) (
$_ $_(=,=) __(_) ) $_$($_(f,i)(_[ _$_()____(_,_) ]>_[ _$_()] )_[_$_()____ (_,_
,_,_,_,_,_)] $_$_ __(_) )$_(f,i)(_[_$_()____(_ ,_ ,_)] >_[  _$_()+ __$() ]  ||
_[_$_()____(_,_,_,_,_,_,_)] $_ (=,=) __$()) r(e,t) _[__(_,_,_ ,_,_ ,_)] $_$_ _
[__ (_,_,_,_,_,_,_)____(_,_,_,_,_,_) ]/_[__(_,_,_,_,_) ____(_,_,_,_,_,_)]*( _[
  __$()]-_[_$()])+_[ _$() ];_[__(_,_,_,_,_,_,_)] $_$_ _[__(_,_,_,_,_,_,_) ____
(_,_,_,_,_)]/_[_$_()]*(_[__(_,_,_,)]-_[__(_,_,)] )+_[__(_,_,)];_[__(_,_,_,_, _
,_,_,_)] $_$_ _[_$_() - __$()] $_$_ _[__(_,_,_,_,_)+ _$_()-__$()]  $_$_  _$();
_f:_[__(_,_,_,_)]  $_$_  _[__( _,_,_,_, _,_,_, _)] * _ [__(_,_,_, _,_,_,_,_)];
_[__(_,_,_,_,_)] $_$_ _[_$_() - __$()]*_[_$_() - __$()];_[__(_,_,_,_,_,_,_,_,_
)] $_$_ __(_,_)*_[__(_,_,_,_,_,_,_,_)]*_[_$_() -__$()]+ _[__ (_,_,_,_,_,_,_)];
_[__(_,_,_,_,_,_,_,_)] $_$_ _ [ __(_,_,_,_) ]-_[__(_,_,_,_,_)]+_[__(_,_,_,_,_,
_)];$_$(_[_$_()____(_,_,_,_,)]++)$_(f,i)((_ [_$_() ____ (_,_,_,_,)]< _ [_$_ ()
____ (_,_,_,_,_)])&&(_[__(_,_,_,_)]+ _[__(_,_,_,_,_)]<_[_$_()____(_,_,_,_,_,_)
])) $_(to,go) _f; $_(ar,ch) $(m,i,au)[] $_$_ <% __(_,_,_) * _$_()____(_,_), __
(_,_,_,_) * _$_()____(_,_,_),__(_,_,_,_,_,_) * _$_()____(_,_,_,_), __(_,_,_,_)
*_$_() ____(_,_,_,_,_),__(_,_,_,_) * _$_() ____(_,_,_,_,_,_),__(_,_,_,_) * _$_
()____(_,_) %>;___($(m,i,au)[($(n,i,t)) _[_$_()____(_,_,_,_)]%__(_,_,_,_,_)]);
$_$(_[__(_,_ ,_,_ ,_,_,_) + __(_,_,_,_,_,_)]++){m(i,a,u) ( _$()) ;$_$ (_[_$_()
____(_,_)]++)$_$(_[_$_()____(_,_,_)] $_$_ _$()) $_(f,i)(_ [__(_,_,_,_,_,_,_) + 
_$_()] != __(_)) ___(_$_()) ;{  m(i,a,u)(__$()); r(e,t)    /* IOCCC 2014*/  %>
aaa
25/11/15 14:55
Roby94
ahahahah sarebbe carino risolverlo, se qualcuno ha tanta tanta tanta pazienza. oppure lo butti dentro un qualsiasi preprocessore del C e scopri in 2 secondi cosa dovrebbe essere XD
Ultima modifica effettuata da Roby94 25/11/15 15:07
aaa
28/11/15 15:44
pierotofy
Compila con gcc o MSVC cl.exe usando la flag -E.

gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/…

If you use the -E option, nothing is done except preprocessing. Some of these options make sense only together with -E because they cause the preprocessor output to be unsuitable for actual compilation.


Il mio blog: piero.dev