title: Three arguments to main, and other obfuscating tricks
body: <p>The following obfuscated C code prints the words to the "12 days of Xmas".</p>
  
  <p>I was trying to puzzle out how it works. I'm basically completely lost.  What is the significance of the three untyped arguments to main in the initial call, the series of characters after the first return, the negative numeric arguments to the calls to main? Eek! </p>
  
  <p>I'm mostly doing this thinking maybe I'll learn some interesting corners of the C language, so replies in that vein are the most welcome.</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  main(t,_,a)char *a;{return!0&lt;t?t&lt;3?main(-79,-13,a+main(-87,1-_,
  main(-86,0,a+1)+a)):1,t&lt;_?main(t+1,_,a):3,main(-94,-27+t,a)&amp;&amp;t==2?_&lt;13?
  main(2,_+1,"%s %d %d\n"):9:16:t&lt;0?t&lt;-72?main(_,t,
  "@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#\
  ;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \
  q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# \
  ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \
  iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
  ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \
  }'+}##(!!/")
  :t&lt;-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1)
    :0&lt;t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a,
  "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
  </code></pre>