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