• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

看了這幾個C語言例子,你一定和我一樣連說5個臥槽!

02/02 15:16
294
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

曾經(jīng)彭老師一直以為自己C語言掌握的還挺好的,直到看到下面這幾個例子。

例1

首先來看一下,大師是如何求圓周率的,

#include?<stdio.h>
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í)行結(jié)果:

彭老師實在詞窮,

first臥槽

例2

模擬圖靈機打印的斐波納契數(shù)列

#include?<stdio.h>
#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]nNo?more?memorynUnusable?memory?alignmentnjt,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
nn'CVP0n!nn'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"tttttVn");*/
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í)行結(jié)果:

double臥槽

例3、

看下下面這個代碼,

第一眼我以為是復(fù)制錯了。


#include?<stdio.h>
main(int?t,int?_,char*?a)
{
return?!0<t?t<3?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?%dn"):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)
:0<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);
}

但是這個代碼沒有問題,可以編譯,

執(zhí)行結(jié)果:

treble臥槽

執(zhí)行結(jié)果居然是一首詩!

作者是Ian Phillipps。

例4

這個極富行為藝術(shù)的小火車,已經(jīng)讓一口君已經(jīng)開始徹底懷疑人生了!

quadra臥槽!

結(jié)果如下:

peng@ubuntu:~/test$?./marshall?
??????choo?choo

例5

如果你仍然覺得just so so,那好吧,你再看下面這個代碼,簡直就是藝術(shù)與代碼的天作之合。

我相信這個代碼的作者一定是個滿臉絡(luò)腮胡子油膩的摳腳擼串肥宅大漢,

否則怎么會畫出這么驚世駭俗、震驚寰宇、美的不可方物、如此卡哇伊的小蘿莉!

關(guān)鍵是他真的可以運行:

畫的居然是雪花!

penta臥槽

這些代碼是IOCCC 【(The International Obfuscated C Code Contest)國際C語言混亂代碼大賽是一項國際編程賽事】的一些獲獎作品,有興趣可以去搜索下。

毫無疑問,這些大師都是世界上最頂級的C語言程序員,都是god like、legendary。

在這里我們就不討論這些代碼原理了(關(guān)于這些代碼的分析,你可以上網(wǎng)查詢),

彭老師并不是鼓勵大家也去寫這樣的代碼,

恰恰相反,我要告訴大家的是:

大師把代碼寫成這樣是經(jīng)典,你把代碼寫成這樣是垃圾!

所以在垃圾和經(jīng)典之間,你需要做一個抉擇。

C語言博大精深,各位碼農(nóng),且學(xué)且珍惜!

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

公眾號『一口Linux』號主彭老師,擁有15年嵌入式開發(fā)經(jīng)驗和培訓(xùn)經(jīng)驗。曾任職ZTE,某研究所,華清遠見教學(xué)總監(jiān)。擁有多篇網(wǎng)絡(luò)協(xié)議相關(guān)專利和軟件著作。精通計算機網(wǎng)絡(luò)、Linux系統(tǒng)編程、ARM、Linux驅(qū)動、龍芯、物聯(lián)網(wǎng)。原創(chuàng)內(nèi)容基本從實際項目出發(fā),保持原理+實踐風(fēng)格,適合Linux驅(qū)動新手入門和技術(shù)進階。