test(int& n){略} 比test(int n){略} 這個(gè)效率一樣,但是一般int這些并非類(lèi)或者結(jié)構(gòu)型
變量是不用引用傳址的,除非你要修改傳過(guò)來(lái)的n在原函數(shù)中的值.因?yàn)橐脗髦穫鞯氖且粋€(gè)指針,系統(tǒng)中是一個(gè)push一個(gè)pop兩個(gè)指令,int也是兩這個(gè)指令,效率相同.
但是結(jié)構(gòu)或者類(lèi)若不是引用傳址,系統(tǒng)會(huì)先在棧里分配一個(gè)
臨時(shí)變量出來(lái),然后在進(jìn)行調(diào)用類(lèi)的構(gòu)造函數(shù),再把成員
變量進(jìn)行賦值,等該函數(shù)返回后還要進(jìn)行調(diào)用析構(gòu)函數(shù),這樣就會(huì)使本來(lái)很簡(jiǎn)單的工作出現(xiàn)很多無(wú)用功,導(dǎo)致程序效率下降.
從匯編也可以看出是否產(chǎn)生了臨時(shí)變量