博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数的调用约定
阅读量:7091 次
发布时间:2019-06-28

本文共 559 字,大约阅读时间需要 1 分钟。

1._cdecl,C Declaration的缩写,是C和C++默认的调用方法

所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈,对于传递参数的内存栈是由调用者来维护的(实现可
变参数的函数只能使用该调用约定)。被调用函数无需要求调用者传递多少参数
每个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大,VC将函数编译后在函
数名的前面加上下划线前缀
2._stdcall是Standard Call的缩写,是C++的标准调用方式
所有参数从右向左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针,这些堆栈中的参数由被调用函数在返
回后清除,成为自动清栈,函数在编译的时候必须确定参数个数,调用者必须严格的控制参数的生成方式,VC将函数编译
后会在函数名前面加上下划线前缀,在函数名后加"@"和参数的字节数
3._fastcall,特点是快,通过寄存器来传送参数的,VC将编译后的函数名前面加上"@"前缀,在函数名后面加上"@"和参数
的字节数
4._thiscall,仅用于C++成员函数,this指针存放在CX寄存器,参数从右向左,

转载于:https://www.cnblogs.com/xiaoxiaocaicai/p/3594806.html

你可能感兴趣的文章
Andriod DiskLruCache的使用案例
查看>>
unity-------Light的各个参数使用
查看>>
tplink wr886n v5.0 ttl 接线方法
查看>>
MyEclipse2014安装插件的几种方式(适用于Eclipse或MyEclipse其他版本)
查看>>
无法启动此程序因为计算机中丢失 xxx.dll
查看>>
django的hello world 项目
查看>>
深入理解JVM(一)——JVM内存模型
查看>>
Linux 网络管理
查看>>
iOS任何界面全屏炫酷倒计时,一句代码就够了
查看>>
Unix系统编程()文件描述符和打开文件之间的关系
查看>>
canvas线条的属性
查看>>
基础006_pg109_IP-Xfft
查看>>
[二] java8 函数式接口详解 函数接口详解 lambda表达式 匿名函数 方法引用使用含义 函数式接口实例 如何定义函数式接口...
查看>>
为什么 c = tf.matmul(a, b) 不立即执行矩阵乘法?
查看>>
Linux 变量引用和命令替换
查看>>
MS推荐的命名指南
查看>>
各大互联网公司架构演进之路汇总
查看>>
[转载].NET平台测试驱动开发模拟框架Moq简明教程(简介)
查看>>
xmlHttp
查看>>
Eclipse编译报Javascript和jquery错的解决办法
查看>>