看板 C_and_CPP 關於我們 聯絡資訊
通常我的視線不會停留在這樣的程式碼超過10秒, 不過最近 領薪水心情好就回一下好了. 這個程式非常的老舊, 而且邪 惡至極 ※ 引述《bcawosxy (??????)》之銘言: : 手邊有一小段程式如下! : 我想請問行式1,2,3及8的中文意思 : 不知道要如何解釋比較通順!! 沒有一個適當名稱說明這個函式能為我們達成 怎樣的工作 ˇ : 1/ short aaa(short*y,int ncount); ^ 因為陣列名稱用 by value傳遞給 函式時, 一定都是decay成指標, 所以這樣寫很好, 用 short y[] 反而會讓人想用 sizeof 運算子 : 2/ #define count 3 ^ 巨集沒有用大寫 + 底線, 容易偽裝成變數 : 3/ short x[count] = {10,26,40}; : 4/ short a = 5; ^ 名稱只有 a 一個英文字母, 根本不知道要用 它來幹嘛 : 5/ main() ^ 回傳 int : 6/ { : 7/ short result=0; ^ 唯一命名比較好的變數 : 8/ result=aaa(x,count); : 9/ result=result*a; return 0; : 10/ } : short aaa(short *y ,int ncount) : { : short acc=1;int i; ^ ice cream ? : for (i=0;i<ncount;i++) : acc=y[i]*acc; : return(acc); : } 從算出來的值來看 result = 10 * 26 * 40 * 5 = 52000 在一個 sizeof( short ) == 2 的平台下, 正數最大只能存 到 32767, 也沒有作好防止溢位的措施, 我把他修改了一下 變成下面這樣 : http://codepad.org/FrITeJWo 用巨集常數來切換不同 typedefs 來讓 result 有不同的空 間大小, 把函式名稱改成 continuedProduct(連乘積),這 樣直接拿去 google 不用看程式碼都知道他在做啥. 寫程式的人如果沒有花點時間去查一下字典, 思考適當的變 數命名, 雖然方便了自己, 在把程式碼移交給下一個人後, 維護上花費的時間將會多得可怕! 不要說你看不懂這支程式, 因為我也看不懂 XD 這種程式碼 看過就可以刪了, 不要把它背下來浪費你的腦容量 -- ◢████ ◢█ ◢██◣ ◢█ ◢███ ◢█ T-ara版怎麼去 ████◢█████s ~> T-ara ███ █ ◢█歡迎您的光臨 ███████████恩靜智妍孝敏 ███ ██ 素妍居麗寶藍 ████◥██◤ █████ψmakigoto123 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115 ※ 編輯: loveme00835 來自: 140.121.197.115 (11/04 13:34)
stupid0319:像.Net或Java這類變相開源碼,不混亂變數不行啊 11/04 13:41
ledia:找自己麻煩嗎 ? XD 11/04 14:02
tropical72:這問題..似乎開始網路上瘋狂在po了.. 11/04 14:41
bcawosxy:謝謝囉 已經找到答案了^^ 11/04 17:53
purpose:http://tinyurl.com/2dfdw28 模糊化(混亂)的工作用工具做 11/04 18:52
purpose:就能勝任,通常不用自己改原始碼吧 11/04 18:53
uranusjr:ice cream XDDDDDD 11/05 01:34