从 msdn里查 va_list va_arg 等

解决方案 »

  1.   

    我在以前的贴子中回答过这个问题喔...最主要的区别是:
    __stdcall由被调用者清栈.WINDOWS API函数使用这种方式.
    __cdecl由调用者清栈.C/C++使用这种方式__stdcall:
    Argument-passing, order Right to left. 
    Argument-passing convention, By value, unless a pointer or reference type is passed. 
    Stack-maintenance responsibility, Called function pops its own arguments from the stack. 
    Name-decoration convention, An underscore (_) is prefixed to the name. The name is followed by the at sign (@) followed by the number of bytes (in decimal) in the argument list. Therefore, the function declared as int func( int a, double b ) is decorated as follows: _func@12 
    Case-translation convention, None 
    __cdecl:
    Argument-passing, order Right to left 
    Stack-maintenance, responsibility Calling function pops the arguments from the stack 
    Name-decoration convention, Underscore character (_) is prefixed to names 
    Case-translation, convention No case translation performed 
      

  2.   

    不好意思,第一句断句错啦
    Argument-passing, order Right to left. 
    应该是
    Argument-passing order, Right to left. 就是说参数进栈顺序是由右而左喽.
    这两种方式的进栈顺序是一样的.