zoukankan      html  css  js  c++  java
  • c++之函数原型

    函数原型:

    [作用域] [函数连接规范] 返回值类型 [函数调用规范] 函数名 (类型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。

  • 相关阅读:
    Ubuntu中安装XAMPP出错的解决方法
    sudo 后不用输入密码的配置
    javascript鼠标双击时触发事件大全
    PHP空值判断
    40音乐海报的创意例子
    35个令人印象深刻的创意404错误页面设计
    35个高分辨率创意苹果桌面壁纸
    38惊人的HD(高清晰度)壁纸七彩的例子
    25精心设计的联系页面例子
    pgpoolII中对 setsockopt 的利用
  • 原文地址:https://www.cnblogs.com/songcf/p/3162567.html
Copyright © 2011-2022 走看看