全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2060
推到 Plurk!
推到 Facebook!

該用 傳值 卻用 傳址 是否是不好的寫法

答題得分者是:windblown
small77
一般會員


發表:5
回覆:8
積分:2
註冊:2005-10-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-11 09:06:02 IP:61.59.xxx.xxx 未訂閱
struct p { int a1; int a2; char c1[40]; } int add(struct p p,int lb,int ub) { int all; for(int w=lb; w<=ub; w ) all = p.c1[w]; return all; } main() { struct p p; printf( " %d \n ", add(p,0,39) ); } 因為我將寫的程式 一跑將會花上 40 多小時 為了節省 堆入堆疊所花的時間 我會寫成下面的方法 int add( const struct p *p,int lb,int ub) { int all; for(int w=lb; w<=ub; w ) all = p->c1[w]; return all; } 雖然已經使用 const 來避免值被改變 請問 這樣是否仍為不好的寫法 ?
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-11 15:32:07 IP:61.229.xxx.xxx 未訂閱
方法二是很好的寫法,不知道你認為有哪個地方需要改進呢?    可以稍微改成
 
int add( const struct p *p,int lb,int ub)
{
  int all=0;
  const char* pChar=p->c1;
  for(int w=lb; w<=ub; w  )
    all  = pChar[w];
  return all;
} 
速度會再提升一點
small77
一般會員


發表:5
回覆:8
積分:2
註冊:2005-10-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-11 16:45:03 IP:61.59.xxx.xxx 未訂閱
const char* pChar=p->c1; 這一步能再減少一點時間 我之前倒是沒想到 多謝回覆 我已經了解了
系統時間:2024-04-29 17:07:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!