【C++ Primer plus】【第九章】内存模型和名称空间

【单独编译】

1.简单说明了头文件的作用,方便引用避免重复定义声明,通常包括:

A.函数声明

B.宏定义

C.结构声明(不含有函数实现,谨声明)

D.类声明

E.模板

F.内联函数

2.include 的<>从默认路径找," "从当前目录找

3.宏隔离头文件,避免重复

#ifndef XXX

#define XXX

#endif

【存储的持续性,作用域,连接性】

1.体会不深,翻译有点蹩脚,感觉其实就是: 生命周期,作用范围(可见性),有效范围(可被访问范围)

2.全局变量和static都属于静态生命周期

int global = 0;// can be accessed any where

        statice global = 0; // only available in the file

        {

static para;//only availabe in the zone,would not be inited twice.

}

3.thread_local 变量对于线程,如同静态变量对于程序。--------------需要理解

4.volatile 是禁止编译器进行 放入 寄存器的优化

5.mutable  不收const 限制,需要实例

6.语言链接性:extern “C” void XX();

7.new运算符,定位new运算符,指明使用哪个变量空间的地址

new chaff

new (buffer) chaff

8.定位的new,不用delete;new [],delete[]

【名称空间】

——避免冲突:

namespace Jack {

              ...

}

原则上,名称空间可以位于外部,或另一个命令空间中,其内容可以被访问

Jack::A = 1;

——using声明   using编译指令

声明只针对一个名称内容

编译指令则包含内容都可用 using namespace XX;


编译指令是如果和局部变量冲突,会进行作用于内的隐藏,而声明则直接报冲突;

——别名:namespace A ; namespace B=A;

——匿名名称空间

——不要头文件使用,优先局部而非全局


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值