亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 變量的傳遞效率問題 [打印本頁]

作者: hcq0411    時(shí)間: 2009-01-20 17:22
標(biāo)題: 變量的傳遞效率問題
void f1(int a, int b, int c)
{
...
}
struct data {
  int a, b, c;
}
void f2(struct data *p)
{
...
}
單就傳遞效率而言,哪個(gè)快? 這個(gè)效率存在平臺(tái)差異嗎?如果參數(shù)個(gè)數(shù)再增加呢?
thanks.
作者: zhuhefang2006    時(shí)間: 2009-01-20 17:28
struct data {
  int a, b, c;
}
void f2(struct data *p)
{
...
}

我想應(yīng)該是這個(gè)快吧
畢竟它只是傳遞指針


void f1(int a, int b, int c)
{
...
}
要復(fù)制3個(gè)變量呢
作者: zxgang_andy    時(shí)間: 2009-01-20 17:30
變量尋址訪存一次,指針兩次。
作者: langue    時(shí)間: 2009-01-20 18:35
說到底都一樣,問題是你想的越復(fù)雜生成的代碼也越復(fù)雜,到時(shí)候哪個(gè)更快可就說不定了。
其實(shí),越簡單越好。
作者: eveson    時(shí)間: 2009-01-20 20:58
原帖由 langue 于 2009-1-20 18:35 發(fā)表
說到底都一樣,問題是你想的越復(fù)雜生成的代碼也越復(fù)雜,到時(shí)候哪個(gè)更快可就說不定了。
其實(shí),越簡單越好。

不錯(cuò),而且你想的復(fù)雜,鏈接出的代碼不一定就是你想的那么復(fù)雜,不知道考究這個(gè)在實(shí)際情況中有多大用處?
作者: prc    時(shí)間: 2009-01-21 09:46
連嵌入式系統(tǒng)都配上幾M甚至幾十M的內(nèi)存了
還研究傳個(gè)參數(shù)對(duì)系統(tǒng)性能的影響就太意義了
作者: hcq0411    時(shí)間: 2009-01-21 15:00
我寫的這個(gè)函數(shù)有5個(gè)參數(shù)要傳,5個(gè)都肯定要讀,其中3個(gè)要回寫,正猶豫哪個(gè)效率高呢。
作者: jinmiaobis    時(shí)間: 2009-01-21 15:02
汗哦,現(xiàn)在的機(jī)器還考慮這個(gè),我覺得沒必要了把,除非嵌入式開發(fā).
作者: meiyoushugao    時(shí)間: 2009-01-21 15:59
原帖由 langue 于 2009-1-20 18:35 發(fā)表
說到底都一樣,問題是你想的越復(fù)雜生成的代碼也越復(fù)雜,到時(shí)候哪個(gè)更快可就說不定了。
其實(shí),越簡單越好。

學(xué)習(xí)了
作者: samon_fu    時(shí)間: 2009-01-21 21:59
主要還是看需求吧,理論上傳地址比傳值(需拷貝)在絕大多數(shù)情況下效率要高。

比如如果做一個(gè)函數(shù),在程序中要反復(fù)調(diào)用,這個(gè)時(shí)候就需要多琢磨琢磨了。

一般的話,還是多照顧代碼可讀性好些。

一個(gè)函數(shù),參數(shù)設(shè)計(jì)到5個(gè),是否復(fù)雜了點(diǎn)?不行的話,傳進(jìn)去一個(gè)結(jié)構(gòu)體可能也好些吧?
作者: eveson    時(shí)間: 2009-01-21 22:36
如果對(duì)這個(gè)函數(shù)調(diào)用頻繁,時(shí)間復(fù)雜度方面,這個(gè)函數(shù)占用比較多,還是需要考慮這個(gè)問題,其實(shí)優(yōu)化程序的范圍很廣,不僅限于此
作者: yecheng_110    時(shí)間: 2009-01-21 22:39
這個(gè)還不如從代碼風(fēng)格考慮一下是不是改用結(jié)構(gòu)體




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2