关注、星标公众号,直达精彩内容
ID:技术让梦想更伟大
作者:李肖遥
如果大家细心的话应该知道c/c++语言函数参数入栈顺序为从右至左,那么为什么这样呢?来看看两个知识点:参数的计算顺序与压栈顺序。
参数入栈顺序
c/c++中规定了函数参数的压栈顺序是从右至左,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。
参数传递和命名约定
Visual C/C++ 编译器支持以下调用约定。
关键字 | 堆栈清理 | 参数传递 |
---|---|---|
__cdecl | Caller | 以相反的顺序(从右到左)将参数压入堆栈 |
__clrcall | n/a | 按顺序ÿ |