[转载]国际C语言乱码大赛(IOCCC)的一个经典作品

标签:
转载 |
你也许听说过“国际C 语言乱码大赛(IOCCC)”,能获奖的人毫无疑问是世界顶级C程序员。这是他们利用C 语言的特点极限挖掘的结果。下面这个例子就是网上广为流传的一个经典作品:
#include <stdio.h>
main(t,_,a)char *a;
{
;#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' ')#
}'+}##(!!/")
}
还没发狂?看来你抵抗力够强的。这是IOCCC 1988 年获奖作品,作者是Ian Phillipps。
毫无疑问,Ian Phillipps 是世界上最顶级的C 语言程序员之一。
你可以数数这里面用了多少个符号。当然这里我并不会讨论这段代码,也并不是鼓励你也去写这样的代码
(关于这段代码的分析,你可以上网查询)。
恰恰相反,我要告诉你的是:
大师把代码写成这样是经典,你把代码写成这样是垃圾!
所以在垃圾和经典之间,你需要做一个抉择。
---------附:高亮后的效果
http://hiphotos.baidu.com/newton111/pic/item/02a03e73d402d74a8601b01e.jpg
---------附:在Microsoft Visual C++ 6.0中编译运行的结果为
Ot.dig.xry,d.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.,gcotC.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.diryC.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.xouydi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.xrxdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.,rndi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.,gpgtdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.grhdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.trtdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
trtg.laCrg,.Catcrthf.grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.dgtdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
dgt.loyC,.a-lgabrthf
trtg.laCrg,.Catcrthf.grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.glgpgtdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
glgpgt.brbgy,.brbrthf.dgt.loyC,.a-lgabrthf
trtg.laCrg,.Catcrthf.grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
Ot.dig.dwglxdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
dwglpg.Cyummgy,.Cyummrthf.glgpgt.brbgy,.brbrthf.dgt.loyC,.a-lgabrthf
trtg.laCrg,.Catcrthf.grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv
-----------end--------------------------
运行结果如下:
On the first day of Christmas my true love gave to
me
a partridge in a pear tree.
On the second day of Christmas my true love gave to
me
two turtle doves
and a partridge in a pear tree.
On the third day of Christmas my true love gave to
me
three french hens, two turtle
doves
and a partridge in a pear tree.
On the fourth day of Christmas my true love gave to
me
four calling birds, three french hens, two turtle
doves
and a partridge in a pear tree.
On the fifth day of Christmas my true love gave to
me
five gold rings;
four calling birds, three french hens, two turtle
doves
and a partridge in a pear tree.
On the sixth day of Christmas my true love gave to
me
six geese a-laying, five gold
rings;
four calling birds, three french hens, two turtle
doves
and a partridge in a pear tree.
On the seventh day of Christmas my true love gave to
me
seven swans a-swimming,
six geese a-laying, five gold
rings;
four calling birds, three french hens, two turtle
doves
and a partridge in a pear tree.
On the eigth day of Christmas my true love gave to
me
eight maids a-milking, seven swans
a-swimming,
six geese a-laying, five gold
rings;
four calling birds, three french hens, two turtle
doves
and a partridge in a pear tree.
On the ninth day of Christmas my true love gave to
me
nine ladies dancing, eight maids a-milking, seven swans
a-swimming,
six geese a-laying, five gold
rings;
four calling birds, three french hens, two turtle
doves
and a partridge in a pear tree.
On the tenth day of Christmas my true love gave to
me
ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans
a-swimming,
six geese a-laying, five gold
rings;
four calling birds, three french hens, two turtle
doves
and a partridge in a pear tree.
On the eleventh day of Christmas my true love gave to
me
eleven pipers piping, ten lords
a-leaping,
nine ladies dancing, eight maids a-milking, seven swans
a-swimming,
six geese a-laying, five gold
rings;
four calling birds, three french hens, two turtle
doves
and a partridge in a pear tree.
On the twelfth day of Christmas my true love gave to
me
twelve drummers drumming, eleven pipers piping, ten lords
a-leaping,
nine ladies dancing, eight maids a-milking, seven swans
a-swimming,
six geese a-laying, five gold
rings;
four calling birds, three french hens, two turtle
doves
and a partridge in a pear tree.
代码的解析见:http://www.cnblogs.com/csn0721/archive/2009/06/24/1510402.html