C++, 3DGame
查看一個與別人合作的項目的代碼,發現了一個“隱秘”的問題,模擬這個問題如下:
幸運時這里它不會導致錯誤,這是由于:<1>我們使用C/C++的默認函數調用方式__cdecl,也就是傳入的函數參數是由調用者清理的;<2>函數foo2沒有使用任何參數。這種做法肯定不值得提倡,但實際的項目中要避免還是不太容易,畢竟每個人的習慣不一樣,還有為了與框架協同工作,有時候可能也不得不這樣做。但是,一旦函數調用方式發生改變,或者被強轉的那個函數是帶參數的,而它又使用了這些參數,隱秘的錯誤也就埋下了。
posted on 2007-03-07 13:38 Kooyu 閱讀(3060) 評論(1) 編輯 收藏 引用
思考中~~~ 回復 更多評論
Powered by: C++博客 Copyright © Kooyu