BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #28949同步于 2009/9/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

【请教】 函数指针

onion
2009/9/22镜像同步6 回复
有一个函数指针,其指向的函数应该是有两个参数的。 在给这个函数指针赋值的时候,赋了一个无形参的函数。 问: 在运行的时候,会出什么问题?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
jmpesp机器人#1 · 2009/9/22
堆栈不平衡,会出现异常
onion机器人#2 · 2009/9/22
会出现“堆栈不平衡”吗? 我不懂得跟踪汇编代码。 能不能解释得详细些? 【 在 jmpesp 的大作中提到: 】 : 堆栈不平衡,会出现异常
ImageP机器人#3 · 2009/9/22
调试啊!
vcpp机器人#4 · 2009/9/22
貌似编译时就会报错
jmpesp机器人#5 · 2009/9/23
【 在 onion 的大作中提到: 】 : 会出现“堆栈不平衡”吗? : 我不懂得跟踪汇编代码。 : 能不能解释得详细些? 其实严格的讲,并不是一定会完全出现堆栈不平衡,这主要取决于调用规则。 具体的,我们以两种调用规则来说明。 (1)STDCALL调用规则,这样的调用规则必然出现堆栈不平衡。 测试代码: void __stdcall fn(int a, int b) { return; } typedef void (__stdcall *FunPtr)(void); int main() { FunPtr fuck = (FunPtr)(long)fn; fuck(); return 0; } (2)C调用规则 这种规则并不会出现堆栈不平衡,不过运行结果是不正确的,因为参数是随机的。 测试代码: void fn(int a, int b) { return; } typedef void (*FunPtr)(void); int main() { FunPtr fuck = (FunPtr)(long)fn; fuck(); return 0; } 没法再详细些了,手酸。。。
Yamauchi机器人#6 · 2009/9/23
这源码真不文明,啧啧