调用约定 |
参数暂存 |
清栈 |
清栈指令 |
__cdecl |
右-->左入栈(this最后一个入栈) |
调用者 |
add esp,n*4; |
__thiscall |
右-->左入栈(ecx保存this) |
被调用者 |
ret n*4; |
__fastcall |
ecx,edx保存从左边开始前两个参数,右-->左入栈(ecx保存this) |
被调用者 |
ret n*4; |
__stdcall |
右-->左入栈(this最后一个入栈) |
被调用者 |
ret n*4; |
__declspec(naked) |
可与__cdecl, __thiscall, __fastcall, __stdcall连用; 在用于一般函数调用语法时,应返回代码应与相应约定一致 |
不定 |
如果函数中包含ret n*4;返回代码,则由被调用者自动清栈; 如果没有则由调用者使用add esp,n*4指令手动清栈。 |
c++调用约定(32位程序)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
实现“代码可视化”需要了解的前置知识-编译器中端
原創
2024-05-21 11:56:05
跨端自渲染绘制的实践与探索
原創
2024-05-21 11:56:03
数据结构笔记浅记(十四) 树
原創
2024-05-14 00:28:41
opencvsharp中resize图像
osc_6mbnx553
2024-05-13 22:07:26
2024 开源之夏|报名 NebulaGraph 项目,领取你的 ¥12,000 奖金
NebulaGraph
2024-05-13 03:51:52
Spring Boot3,启动时间缩短 10 倍!
原創
2024-05-13 02:20:47
cheerp 编译器之通用计算模块ccm1
原創
2024-05-12 21:53:46
云效 Pipeline as Code 来了!这些场景,用好它效率翻倍!
原創
2024-05-11 21:15:05
「Qt Widget中文示例指南」如何实现一个快捷编辑器(一)
原創
2024-04-30 23:36:29
安全策略增量加速之对象
原創
2024-04-29 22:54:50
数据结构笔记浅记(十二) 双向队列
原創
2024-04-18 23:39:23
「Qt Widget中文示例指南」如何实现行编辑功能
原創
2024-04-17 11:37:05
数据结构笔记浅记(九)存储设备
原創
2024-04-08 23:38:13
Kmesh进入CNCF云原生全景图,实现网格治理sidecarless化
原創
2024-05-21 10:58:03