设为首页 加入收藏

TOP

函数调用方式的区别
2014-11-22 09:20:25 】 浏览:6405
Tags:函数 调用 方式 区别

  通常在使用VC进行函数定义时会指定该函数调用方式,诸如:


  int __stdcall max(int a, int b)


  {


  return a>b a:b;


  }


  int __cdecl min(int a, int b)


  {


  return a


  }


  bool __fastcall equal(int a, int b)


  {


  return a=b true:false;


  }


  首先,让我们来分个类,调用方法分为两大类另加一个较特殊的__thiscall.


  第一类:__stdcall类 别名:WINAPI,CALLBACK,PASCAL。该类特点是:主调函数负责参数入栈,由函数本身负责栈的恢复.


  第二类:__cdecl类 别名:C/C++中默认调用方式,若你定义函数未指定函数调用约定(Calling Conventions),例如在VC6中下面两个函数的调用约定是等价的:


  int max(int a, int b)


  {


  return a>b a:b;


  }


  int __cdecl min(int a, int b)


  {


  return a


  }


  该类调用约定的特点是:由主调函数负责参数入栈,并由主调函数负责线的恢复.


  第三类:__thiscall 该类比较特殊,只用于类成员函数调用,你甚至不能强制指定这个函数调用约定。它是由C/C++编译器自动添加的。在C/C++中类成员函数会默认传入一个this指针,对于此,在默入情况下,C/C++中类成员函数通过此类调用约定来指定this指针.


  接着介绍一下__thiscall,__thiscall是关于类的一种调用方式.


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++标准编程:虚函数与内联 下一篇C++头文件重复定义问题的处理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目