zoukankan      html  css  js  c++  java
  • c/c++函数调用约定

    调用方式

    参数传递顺寻

    清理堆栈         

    支持变长参数           

    使用对象

    函数名修饰

    Name-decoration convention

    其他

    __cdecl

    从右至左

    调用者

    支持

    C/C++默认调用方式

    函数名前加下划线如函数main修饰成_main

    生成的代码比stdcall大,因为其要求每个函数调用包含清理堆栈的代码

    __stdcall

    从右至左

    被调用者

    不支持

    Win32 APIdll中导出函数使用

    下划线开头,函数名,然后@符号,最后是参数的总byte数。如:int f(int a, double b ),名字为_f@12

     

     

    __fastcall

    先放入EDXECX中,在从右至左

    被调用者

    不支持

     

    @开头,函数名,然后@符号最后是参数的总byte数,如:@f@12

     

    快速传参,即快速调用

    thiscall

    从右至左,this指针放ECX

    被调用者

    不支持

    C++成员函数专用,用来支持this指针

     

     

    本文档根据MSDN整理而成

  • 相关阅读:
    saltstack源码详解一
    linux的yum报错
    django restframework
    列表生成式
    面向对象的封装
    linux对于zombie的处理
    Flask学习目录
    #1_两数之和
    LeetCode入门
    Struts2(一)——基本使用
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3031475.html
Copyright © 2011-2022 走看看