恭喜,你发布的帖子
发布于 2023-01-17 09:21:25
16楼
重新理一下:
第一种,如果要用到AC,子程序内部开始时保存AC,结束恢复AC,用哪个AC,就操作哪个,上层调用方不用管;
第二种,上层保存AC,然后调用子程序,上层恢复AC;
是我理解有问题吗,两位推荐的方法是第一种吗,子程序内部处理AC;
如果使用第二种,那当上层不知道子程序用了哪些AC时(尤其是子程序加密的时候),只能所有AC都保存,此时子程序调用多次,那上层调用方都要处理一遍,这只是AC,如果再算上其他公共资源,那没法玩了;
当然这些问题,在windows等系统里也会有,比如 cdecl stdcall 的堆栈平衡,或是 pushad/popad 保存恢复寄存器/标记位 是调用方/被调用方 处理;一般是规则统一,不统一的话最好是修改子程序,修改不了只能是调用方迁就了;
我是楼主。我建议第二种。
一楼建议你的第一种。
我的意见是自己保存自己用过的东西很奇怪吗?不管上层还是下层。谁用谁保管。
请填写推广理由:
分享
只看
楼主