曾經(jīng)我一直以為自己C語言學的還挺好的,直到看到這幾個例子。
例1
首先來看一下,大師是如何求圓周率的,一口君實在詞窮,first臥槽。
#include
long a=10000,b=0,c=10000,d,e,f[10001],g;
void main()
{
for(;b != c; f[b++] = a/5);
for(; d=0,g=c*2,c>5000; c--,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
}
執(zhí)行結果:
例2
模擬圖靈機打印基為2的斐波納契數(shù),double臥槽。
#include
#define f int
#define v (void)printf(
#define x ),exit(1);
#define y ){if(n)c=z(n,u),u=n,n=c;o[i]=n?'0'+(1&*n):'0';}
#define z(a,b) (f*)(~1&*a^(f)b)
#define k(l) if(!(l=(f*)malloc(sizeof(l))))v 23+m x if(1&(f)l)v 39+m x*l=
r(p,q,d)f*p,*q;{char o[81];f*n=p,i=39,*c,*u=d?q:z(p,q);o[40]='0'+(1&*p);
for(;i>=0;i--y u=d?z(p,q):q;n=p;for(i=41;i<79;i++y o[i++]='\r';o[i++]=0;
v o);(void)fflush(stdout);sleep(1);}
main(a,c)char**c;{char*u,*malloc(),*m=
"Usage: black [string]\n\0No more memory\n\0Unusable memory alignment\n\0jt,s@m@ (beleY%XX&Yz {z&z}i|R(|)*((.)i)hiniFiGJ%FG.JJgJ: ;;&;z {z&z}-RS/ROiOV OP+PsaPh+ijainnjmamfmfAlnnnnphppopv%vvgv.aABiB1/BVP11/1.%..&.OhrR-WV V1#1VP1CcC0R\
\n\n'CVP0\n!\n\n'\nEaEEnEamat!akckk'kwaww'wz,zzozEit +",
*n=m;f*q,*p=0,*g,b=3,d;
if(a>2)v m x n=a>1?c[1]:n;
/*v"\t\t\t\t\tV\n");*/
k(q)0;u=n;a=~1&'j';
while(a!='x'){
/*r(q,p,b);*/
for(;;u+=3){
u= *u?u:n;
if((~1&*u)==a&&(1&*q)<<1==(2&u[2]))break;
}
a=~1&u[1];
d=(8&u[2])>>3;
if(16&u[2])putchar(u[3]);
if(4&u[2])*q|=1;else*q&=~1;
if(b==d)g=p;else{
g=z(q,p);
if(!g){k(g)(f)q;*q^=(f)g;}
}
p=q;q=g;b=1-d;
}
/*r(q,p,b);v"\n");*/exit(0);
}
執(zhí)行結果:
例3
#include
main(int t,int _,char* a)
{
return !03?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?
main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-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<-50?_==*a?putchar(a[31]):main(-65,_,a+1):main((*a=='/')+t,_,a+1)
:02,2,"%s"):*a=='/'||main(0,main(-61,*a,
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);
}
是的,你沒有看錯,這個代碼沒有問題,可以編譯,執(zhí)行結果:
居然是這個執(zhí)行結果,treble臥槽,聊表敬意。
【作者是Ian Phillipps】
例4
這個極富行為藝術的小火車,已經(jīng)讓一口君已經(jīng)開始徹底懷疑人生了!quadra臥槽!
結果如下:
peng@ubuntu:~/test$ ./marshall
choo choo
例5
如果你仍然覺得just so so,那好吧,你再看下面這個代碼,簡直就是藝術與代碼的天作之合。
我相信這個代碼的作者一定是個滿臉絡腮胡子油膩的摳腳擼串肥宅男,否則怎么會畫出這么驚世駭俗、震驚寰宇、美的不可方物、如此卡哇伊的小蘿莉!penta臥槽!?。。?!
看下他的執(zhí)行結果吧:
這些代碼是IOCCC 【(The International Obfuscated C Code Contest)國際C語言混亂代碼大賽是一項國際編程賽事】的一些獲獎作品,有興趣可以去搜索下。
毫無疑問,這些大師都是世界上最頂級的C語言程序員,都是god like、legendary。在這里我們就不討論這些代碼了,一口君并不是鼓勵你也去寫這樣的代碼(關于這些代碼的分析,你可以上網(wǎng)查詢)。恰恰相反,我要告訴大家的是:大師把代碼寫成這樣是經(jīng)典,你把代碼寫成這樣是垃圾!所以在垃圾和經(jīng)典之間,你需要做一個抉擇。
C語言博大精深,各位碼農(nóng),且學且珍惜!
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!