可能重复:
有没有办法获得交流功能的大小?
我需要在运行时确定ac函数的字节大小.我正在使用MSVC,我可以使用此编译器提供的任何技术.
我知道这个问题已被问到很多,但我只能找到人们说"不,它不可能".不过,也许我已经监督了一个解决方案.如果是这种情况,请指出我.
通常,它按照函数在源代码中出现的顺序以合理的方式生成代码.所以大小是下一个函数的地址减去函数的地址.
然而,有几种方法不会很好.首先是增量链接选项,您将获得值5.这是跳转到实际函数的jmp指令的大小.这些跳转允许链接器替换代码而不完全重新链接图像,它只是附加代码并修补跳转地址.
当然还有优化器.当内联时,你不能再有意义地谈论函数大小.你需要__declspec(noinline).
可以做,测试它并彻底评论代码,这样有一天没有人会插入一个函数.如果你这样做是为了移动代码,请务必记住编译器不会生成与位置无关的代码,也无法修补该代码的重定位.
归档时间: |
|
查看次数: |
226 次 |
最近记录: |