• C++函数参数的传递顺序


    C++编译器默认使用的是 __cdecl 模式,参数是通过栈传递的,因此是从右到左的传参顺序。

    int f(int a, int b, int c)
    {
        return 0;
    }
    int main(){
        return  f(printf("a"),printf("b"),printf("c"));
    }
    当用函数做实参时,编译器一般会根据参数传递顺序,先计算出函数的返回值,然后将返回值传递给原来的函数。
    函数的参数是通过栈传递的。因此参数从右往左入栈顺序是:printf("c"),printf("b"),printf("a")。依次计算出结果:cba
     
    参数传递标准
     
    C,C++中
    cdecl ,stdcall 自右向左 传到堆栈
    pacal,自左向右传递到堆栈
    register 无方向,因为没有用到堆栈
    fastcall 使用寄存器的参数也没规定方向,并且至少有三个寄存器,和两个寄存器的两种版本
     
  • 相关阅读:
    RA-Embedding-based Retrieval in Facebook Search
    RA-Recommending What Video to Watch Next: A Multitask Ranking System
    家事杂谈-2
    工作体会-3
    CCS
    CCS
    CCS
    CCS
    CCS
    CCS
  • 原文地址:https://www.cnblogs.com/Lxiaoyouling/p/9196156.html
Copyright © 2020-2023  润新知