[問題] short & const reference

看板C_and_CPP (C/C++)作者 (漏水)時間14年前 (2011/08/16 22:30), 編輯推噓8(8016)
留言24則, 9人參與, 最新討論串1/1
開發平台(Platform): VC++ 問題(Question): 1.寫程式的時候很少看到有人使用short 但很多時候其實值域根本就不需要這麼大 如果使用short的話理論上可以省去一半的空間 但為何很少看到呢? 是因為直覺就想到要使用int 還是背後有什麼隱藏的風險? 2.一般我們在傳入參數時若不希望參數被更動 通常會使用const reference EX. void func(const CMyClass& myclass); 但如果傳入的參數是一般的既定型別,像是int,float...呢? 還有需要加reference嗎? void func(const int& a); 兩個小問題 請版友解惑 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.212.14

08/16 22:36, , 1F
因為很多人只知道有int、double這兩個型態
08/16 22:36, 1F

08/16 22:38, , 2F
下面這個我不知道是不是原因:int "通常" 比 short 快..
08/16 22:38, 2F

08/16 22:41, , 3F
所謂比較快會不會是memory alignment的關係??
08/16 22:41, 3F

08/16 22:45, , 4F
short 能有什麼風險,頂多就是溢位,但這是大家都有的風險
08/16 22:45, 4F

08/16 22:46, , 5F
省空間的時候會用 short,影像處理函式庫裡就看得到啦
08/16 22:46, 5F

08/16 22:47, , 6F
http://0rz.tw/3wq2E, 拉到 Prefer int over char and
08/16 22:47, 6F

08/16 22:49, , 7F
short ; http://0rz.tw/Z8fkO 這篇也有提到。
08/16 22:49, 7F

08/16 22:50, , 8F
第一個縮網址多了一個逗號 http://0rz.tw/3wq2E
08/16 22:50, 8F

08/16 22:52, , 9F
所以使用short的好處是省空間(with padding) 壞處是
08/16 22:52, 9F

08/16 22:53, , 10F
話說光是index loop要用signed還是unsigned就有爭論了.
08/16 22:53, 10F

08/16 22:53, , 11F
runtime performance較差?
08/16 22:53, 11F

08/16 23:09, , 12F
如果網頁所言正確(應不致於二個都錯),就如你所說的。
08/16 23:09, 12F

08/16 23:11, , 13F
也沒省到多少空間,而且現在PC的記憶體容量成長很快
08/16 23:11, 13F

08/16 23:49, , 14F
剛才看到第二題 Orz..我在想,reference 速度會較快嗎 ?
08/16 23:49, 14F

08/16 23:56, , 15F
不會,primitive type直接傳值是最快的
08/16 23:56, 15F

08/17 00:08, , 16F
不一定, primitive type像是double就有差
08/17 00:08, 16F

08/17 00:10, , 17F
扣掉速度,const prim. type 我想不出有什麼理由要ref.
08/17 00:10, 17F

08/17 00:11, , 18F
應該是compiler有對int做處理吧...
08/17 00:11, 18F

08/17 00:23, , 19F
想來想去,是為了亂搞用的 XD http://0rz.tw/GzsVL
08/17 00:23, 19F

08/17 00:24, , 20F
用ref 當然是為了美觀呀~~
08/17 00:24, 20F

08/17 00:25, , 21F
要不然看到一堆* 心情會比較好?
08/17 00:25, 21F

08/17 00:26, , 22F
t大這樣根本就違背了const reference的本意嘛XDD
08/17 00:26, 22F

08/17 14:28, , 23F
因為int只有三個字,short有五個字~ (大誤)
08/17 14:28, 23F

08/17 15:02, , 24F
樓上中肯!!!
08/17 15:02, 24F
文章代碼(AID): #1EIdxq7G (C_and_CPP)
文章代碼(AID): #1EIdxq7G (C_and_CPP)