C++, 3DGame
查看一个与别人合作的项目的代码,发现了一个“隐秘”的问题,模拟这个问题如下:
幸运时这里它不会导致错误,这是由于:<1>我们使用C/C++的默认函数调用方式__cdecl,也就是传入的函数参数是由调用者清理的;<2>函数foo2没有使用任何参数。这种做法肯定不值得提倡,但实际的项目中要避免还是不太容易,毕竟每个人的习惯不一样,还有为了与框架协同工作,有时候可能也不得不这样做。但是,一旦函数调用方式发生改变,或者被强转的那个函数是带参数的,而它又使用了这些参数,隐秘的错误也就埋下了。
posted on 2007-03-07 13:38 Kooyu 阅读(3042) 评论(1) 编辑 收藏 引用
思考中~~~ 回复 更多评论
Powered by: C++博客 Copyright © Kooyu