Re: [問題] 一段程式的解釋
通常我的視線不會停留在這樣的程式碼超過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)
→
11/04 13:41, , 1F
11/04 13:41, 1F
推
11/04 14:02, , 2F
11/04 14:02, 2F
→
11/04 14:41, , 3F
11/04 14:41, 3F
→
11/04 17:53, , 4F
11/04 17:53, 4F
推
11/04 18:52, , 5F
11/04 18:52, 5F
→
11/04 18:53, , 6F
11/04 18:53, 6F
→
11/05 01:34, , 7F
11/05 01:34, 7F
討論串 (同標題文章)