[問題] 使用sizeof()是否會影響程式執行時間?

看板C_and_CPP (C/C++)作者 (journey)時間12年前 (2013/08/02 12:17), 編輯推噓3(303)
留言6則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) None 問題(Question): 大家好, 我的問題是 sizeof()運算子是程式執行時才去做運算取得結果嗎? 假設 a, b 為指標, c為struct, size為D Byte, memcmp(a, b, sizeof(c)) 和 memcmp(a, b, D) 是否後者執行時間會較短? 因為對程式執行速度很計較, compiler的optimization都已經調到最高了, 若一段code裡面大量充斥sizeof( ), 有些還在迴圈裡, 在考慮要不要全部換成常數... 其他還有想到的是, 盡量把signed變數改成unsigned... 不知道有沒有幫助... 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.0.175

08/02 12:24, , 1F
sizeof()在compile-time就算完了。
08/02 12:24, 1F

08/02 13:52, , 2F
去做profiling不然你都不知道時間花在哪裡
08/02 13:52, 2F

08/02 14:05, , 3F
不過C99中VLA的sizeof似乎就是執行期
08/02 14:05, 3F

08/02 14:06, , 4F
二樓正解
08/02 14:06, 4F

08/07 00:35, , 5F
想請問一下二樓 profiling是指什麼?可以更進一步的介紹嗎?
08/07 00:35, 5F

08/07 10:30, , 6F
08/07 10:30, 6F
文章代碼(AID): #1H-pBNsL (C_and_CPP)
文章代碼(AID): #1H-pBNsL (C_and_CPP)