精華區beta C_and_CPP 關於我們 聯絡資訊
於 CSZONE 看到的一篇轉信 覺得很是有趣就轉錄來了 >From news.cs.nthu.edu.tw!freebsd.ntu.edu.tw!bbs.ee.ntu.edu.tw!Maxwell Sun Mar Path: news.cs.nthu.edu.tw!freebsd.ntu.edu.tw!bbs.ee.ntu.edu.tw!Maxwell From: iLee@bbs.ee.ntu.edu.tw (環遊世界的軟木塞) Newsgroups: tw.bbs.comp.language Subject: Re: 奧林匹克資訊研習營的程式設計 Date: 28 Feb 1998 03:54:51 GMT Organization: 台大電機 Maxwell BBS Message-ID: <3NJDTS$tz5@bbs.ee.ntu.edu.tw> X-Filename: Programming/M.888638092.A Lines: 54 Xref: news.cs.nthu.edu.tw tw.bbs.comp.language:81756 ※ 引述《"林口之虎" <bjc4100@mail.ty.wownet.net>》之銘言: : >: 以下程式選自The International Obfuscated C Code Contest 1984 年作品 : >: int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\ : >: o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);} : > 畫蛇添足的白濫 : 對啊!小弟也認為寫程式,可讀性、實用性最重要! programming 不一定都這麼嚴肅的. :) 從我學 C 以來. 不知道聽過多少人抱怨: C 的語法不夠嚴謹. 人前這樣講, 一些書上也會這樣寫. 想想都替 C 抱不平. 正統教育都強調清晰的邏輯, 正確的思考. 程式可讀性實用性反而見仁見智. programming 跟作文章差不多, 文有定法, 同時也文無定法. 教人為什麼 main() 得是 int (), 應該. 教人大括號小括號該怎麼擺, 常用 switch 少用 if, 那就未必了. 倒常常想, 那些個抱怨 C 語法不夠嚴謹的. 到底是抱怨那個部份? pointer 難用? 是因為對 pointer 認識不清呢, 還是難用? array & pointer 關係曖昧?事實上呢? declaration 混沌不明? 看個 void (*signal(int, void (*)(int)))(int) 看老半天看不懂. 這是誰的問題? conversion 常出狀況? ANSI C 真正允許什麼 conversion 說得上來嗎? 哪些 conversion 又屬於 compiler extension 部份? 為什麼 C 動不動掛在嘴邊就是 portable? 專寫一個給某種平台用的程式難道不行嗎? 看看那些只用過 Turbo C 的人吧. 提的問題有一大半應該屬於 OS 所提供的 system call. 卻還當它是「C 的問題」. 一本 C 的書要是能把這幾個部份講對講明白, 就是一本好書了. 這樣的好書又有幾本? 很多人學 C 就是把 C 當 C 學, 很可惜. 學 C 最大的好處是可以東摸摸西摸摸. 看著課堂上講過的東西一樣一樣都能在現成的東西裡頭找著. 講到作業系統, 就試試 fork()/vfork() 有什麼不一樣. 講到演算法, 就小小 hack 一下 sed. 這種感覺是很親切的. 可是當我們看不懂眼前這段碼的時候, 該怎麼辦? 直接寫信去跟 coder 抱怨他程式可讀性太差? 還是乾脆歸罪於 C 語法不嚴謹, 一種結果可以有三四種寫法? 當然, 這也只是我個人看法. :) -- [[m※ Origin: 臺大電機 Maxwell 站 ◆ From: ccsun73.cc.ntu.edu.tw -- 你是一位聰明人嗎?如果是,你該記住,你的聰明是跟那些人學來的, 然後在適當的地點,適當的時間,輕輕的對那人說:這是你教我的。 聲音要輕,而且只告訴他一個人。 摘錄自"牧羊少年奇幻之旅" -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: DickG.m5.ntu.ed