c++之函数原型
来源:互联网 发布:彩虹六号 知乎 编辑:程序博客网 时间:2024/06/05 11:49
函数原型:
[作用域] [函数连接规范] 返回值类型 [函数调用规范] 函数名 (类型1[形参1]...);
函数定义:
[函数连接规范] 返回值类型 [函数调用规范] 函数名 (形参列表)
{......}
接口函数一定要指定调用规范,若不指定(使用默认),当别人声明该接口时与默认的调用规范不一致(函数原型与实现的调度规范不一致)时,将发生编译连接错误,或运行时崩溃。
函数调用规范:
_cdecl : c/c++默认规范,从右向左压参,能用于可变参数,调用函数负责堆栈清理。
_stdcall : Win API调用规范,从右向左压参,被调函数负责堆栈清理,若函数为变参时,会自动转换为_cdecl。
_thiscall : c++非静态成员函数调用默认规范,不可变参,调用时,this指针保存到ECX寄存器。其它与_stdcall一致。
_fastcall : 实参全放到寄存器中,所以很快,不能用于成员函数,被调函数负责清理堆栈。
函数连接规范:
主要影响名字的改编方案。
多语言开发时,要统一函数、变量、数据类型、常量等的连接规范。
常用的规范是 extern "c" . c++中调用c编译函数时,通常要使用此连接。应为c++比c多了重载函数的能力,为了区别重载函数,在c++编译器改编重载函数名称时与c的不一样。如:void func(int a, int b);对于c编译器改编后的名字可能是_func, 而c++编译器改编后可能是_func_int_int。
0 0
- C语言之strncpy函数原型
- C语言之常见的C函数原型
- [c]strcpy函数原型
- c++之函数原型
- c str常用函数原型
- C 函数声明, 函数原型, 函数定义
- C系列函数原型之-StrStr(char *str,char *subStr)的实现
- C编程中不容忽视的函数原型
- [C 语言专栏] 为什么需要函数原型?
- C语言函数原型fgets fputs
- C语言部分函数原型实现
- c字符串函数原型 | from web 待
- (C)string的一些常用函数原型
- C语言函数原型的重要性
- C语言字符串操作函数-原型
- C语言内存处理函数原型实现
- C语言字符串处理函数原型实现
- C语言中函数原型的重要性
- c++11多线程库
- cocos2dx新建android项目lib拷贝、访问权限等问题集
- cocos2d-x回收池原理
- cocos2d-x之MoonWarriors用c++实现
- cocos2d-x调度器原理
- c++之函数原型
- Android服务器通信的几种方式详解
- cocos2d-x动作原理
- cocos2d-x触摸分发器原理
- 用CCRenderTexture和BlendFunc制作游戏教学时使用的黑色覆盖层
- 到底做运维还是做开发
- CCOrbitCamera卡牌翻转效果
- CCTableView的使用和注意事项
- 算法荐书(程序员练功+大众科普)