调用约定与类与对象初_孤单--剪影_新浪博客

_cdecl(c标准调用约定)
调用方开辟形参,调用方进行清理
_stdcall(Windows的标准调用约定)
调用方开辟形参内存,被调用方清理
_fastcall(快速调用约定)
两种情况:1.形参字节小于等于四
前两个形参值不开辟内存,寄存器带入被调用方
第三个形参开始和_stdcall调用约定相同
2.形参字节大于四
调用方开辟内存,被调用方清理内存
_thiscall(c++调用约定)(普通成员方法)
调用约定:规定符号的生成规则
形参的入栈顺序
形参的开辟和清理方式
类和对象:
函数的默认值:
压栈:是从右向左的,匹配:是从左向右的
如果实参存在,用实参,如果实参不存在,用默认值
函数的默认值:自右向左,依次设计(不能重复赋值)
const:
 const 修饰的变量叫常量
 编译期间将用到常量的地方替换成常量初始化的值
 定义常量时一定要初始化
 const修饰的全局变量是一个local的符号
调用约定与类与对象初

零初始化:double();  int();    char   c=char();
调用约定与类与对象初
c/c++相互调用:
extern"c"(以c的规则生成)
{
   extern  int Sum(int a,int b);
}
c++语法:把括号中的代码以c的方式处理
c++调用c:
extern"C"
{
    void test()
    {
    };
}
c调用c++:1.修改c++源文件中的代码
2.不能修改中间层
而且所有的c++编译器都有宏:cplusplus
调用约定与类与对象初
引用:
int  *p=&a;//指针
int  &b=a;//引用(底层实现是用指针来实现)
(1)一定要初始化
(2)不能引用不能取地址的数据
(3)引用不能再引用
  (4)引用使用的是引用的内存块
const  int &c=10;//引用临时量的内存块
cout<< b <<endl;//cout<< &b<<endl;//&(*b)
int  &b=a;
b=c;
&b=c;//一旦引用后无法改变的值
不能返回局部变量的指针或者引用
new与delete:
int *cpp=new  int();//加括号可以进行初始化
delete  cpp;
调用约定与类与对象初
new:1.开辟数组2.初始化
delete:1.销毁资源2.释放空间
int  *parr=new   int [10] ();//10表示数组个数
delete[] parr;//为什么不允许初始化?
答:不知道开辟空间的大小,不知道这个值返回给哪个
1.new/malloc
  1.new 关键字,malloc 函数
  2.new 开辟空间 + 初始化  malloc 开辟空间
  3.new 自由存储区域  malloc 堆上
  4.new 抛出异常      malloc 内存不足 返回NULL
调用约定与类与对象初

调用约定与类与对象初


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值