zoukankan      html  css  js  c++  java
  • 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 使用寄存器的参数也没规定方向,并且至少有三个寄存器,和两个寄存器的两种版本
     
  • 相关阅读:
    Java工具类——UUIDUtils
    Python中的split()函数的用法
    学习笔记
    hdu 1558 线段相交+并查集
    hdu 4609 FFT
    hdu1402 FFT入门
    多项式乘法快速算法
    FFT
    GDUT校赛
    light oj 1236 分解质因数
  • 原文地址:https://www.cnblogs.com/Lxiaoyouling/p/9196156.html
Copyright © 2011-2022 走看看