當前位置:
首頁 > 知識 > 你見過或寫過的最複雜的 C 語言程序是?

你見過或寫過的最複雜的 C 語言程序是?

如果是單行代碼,必須是那種實用的,不是混淆或令人費解的那種。比如:while (*n++=*i++) ; ( 看懂的童鞋可在評論中解釋)

我想再找些更為複雜的程序。當然了, 不是叫你發那種調用很多函數才能返回結果的; 我想看單行代碼幾乎就完成所有工作的例子。

零基礎小白到大神之路,歡迎加裙 四八七八七五零零四,群里有免費C++課程,還有大量乾貨哦

Hayri U?ur Koltuk 推薦了《毀滅戰士 3》中用到的平方根倒數速演算法的代碼:

floatQ_rsqrt(floatnumber)

{

longi;

floatx2,y;

constfloatthreehalfs=1.5F;

x2=number*0.5F;

y=number;i= *(long*)&y;// evil floating point bit level hacking

i=0x5f3759df-(i>>1);// what the fuck?

y= *(float*)&i;y=y*(threehalfs-(x2*y*y));// 1st iteration

//y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed

returny;

}

看第 8 行高亮的那句!0x5f3759df !

【2015-10-29 更新】

Pierre Raii 童鞋有一天在學校經過系主任辦公室時,看到門上貼了一張紙,說 C 語言沒那麼難

void(*(*f[])())()

圖上有英文解釋,看懂的童鞋可翻譯或解釋一下。

Jefferson Steelflex 提醒說:

如果有人覺得這個聲明很費解,去查查指針的右左規則(right-left rule)。

【2015-10-29 更新】

Eric Wadsworth 推薦的是:

我有位前同事是在 NASA 工作,做流體動力學模擬。他曾經遇到一個 Bug,團隊追蹤就花了整整三個禮拜。他給我展示了 C 代碼,其中有一行類似這樣的:

c=******a;

Stephan Froede 說自己也遇到過類似的

char****************a;

記不清有多少 * ,並且還沒有注釋,他稱之為來自地獄的代碼,哈哈。

伯樂小組站內評論摘選

YuHao

從 void (*(*f[])())() 看不出 f 是什麼類型的,可收藏 http://cdecl.org/ ,你不會後悔的。(手動解析 規則是從右向左,從裡到外,C++基本同理,語法比C更複雜)

Ace

照片中的行代碼:void (*(*f[])())()

定義 f 是一個未指定大小的指針數組,數組中的指針指向 { 返回[ 指向(返回值為空的函數)的指針] 的函數}

是這個意思吧?

零基礎小白到大神之路,歡迎加裙 四八七八七五零零四,群里有免費C++課程,還有大量乾貨哦

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT技術java交流 的精彩文章:

2017阿里巴巴 前端 校招免費分享 筆試篇
HTML5多屏互動案例分析
C加加程序員的成長過程中的四個階段
小白怎樣才能學好c語言

TAG:IT技術java交流 |