請問下例如要測試多組數據的大小排列可以在int main 一點一點比較 也可以在外面創建個函數比較後調用
請問這兩種方法哪個方法在運行的時候更加省時間呢? 求指教謝謝了
時間基本上沒啥明顯區別
正常的帶參數的函數,一般有以下幾步:
1. 用push指令將參數入棧,如果是基本類型,有幾個參數就需要幾條push指令
2. call指令進入被調用函數,先保存IP寄存器的值,再將函數入口地址存入IP
3. 被調用函數將返回地址和基址EBP壓入棧,並分配棧空間需要3條指令
pushl %ebp
movl %esp, %ebp
subl $xx, %esp
4. 函數返回時恢復棧,需要leave和ret兩條指令,leave釋放棧空間並恢復EBP,恢復IP寄存器的值
所以需要6條以上的指令開銷,如果參數是結構體的話,需要拷貝復制指令,這個開銷就大了。
提高C++程序運行效率的10個簡單方法:http://www.jb51.net/article/54792.htm