博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
再读c++primer plus 004
阅读量:5232 次
发布时间:2019-06-14

本文共 1122 字,大约阅读时间需要 3 分钟。

第九章  内存模型和名称空间

1.如果文件名包含在尖括号中,则c++编译器将在存储标准头文件的主机系统的文件系统中查找,但如果文件名包含在双引号中,则编译器将首先查找当前的工作目录或源代码目录(或其他目录,这取决于编译器),在包含自己的头文件时,应使用引号而不是尖括号。

2.存储持续性:(1)自动存储持续性:在执行完函数或代码块时,他们使用的内存被释放。

                         (2)静态存储持续性:static,在整个程序运行过程中都存在。

                         (3)线程存储持续性:使用关键字thread_local声明的,其生命周期和所属的线程一样长。

                         (4)动态存储持续性:用new分配的内存一直存在,直到被delete。

3.自动变量存储在栈中。

4.要想创建链接性为外部的静态持续变量,必须在代码块外面声明它;要创建链接性为内部的静态持续变量,必须在代码块的外面声明它,并使用static限定符;要创建没有链接性的静态持续变量,必须在代码块内声明它,并使用static。换句话说未加static的全局变量和函数都具有全局可见性,其他的源文件也能访问,加上static,就会对其他的源文件进行隐藏。

5.如果要在多个文件中使用外部变量,只需在一个文件中包含该变量的定义,但在使用该变量的其他所有文件中,都必须使用关键字extern声明它,它不给变量分配内存空间,因为它引用已有的变量。

6.再谈const:在默认情况下全局变量的链接性为外部的,但const全局变量的链接性为内部的。也就是说,在c++看来,全局const定义就像使用了static说明符一样。如果想让这个常量的链接性为外部的,则可使用extend关键字来覆盖默认的内部链接性:extend const int states = 50,在这种情况下,必须在所有使用该常量的文件中使用extend关键字来声明它。

7.定位new运算符:可以使用这种特性来设置其内存管理规程,处理需要通过特定地址进行访问的硬件或在特定位置创建对象。

要使用定位new特性,首先要包含头文件new,然后把new运算符用于提供了所需地址的参数,

#include<new>

int a = new (buffer) int   //buffer为地址

9.c++鼓励程序员在开发过程时使用多个文件,一种有效的策略是,使用头文件来定义用户类型,为操纵用户类型的函数提供函数原型;并将函数定义放在一个独立的源代码中。头文件和源代码文件一起定义和实现了用户定义的类型和其使用方式。最后,将main()和其他使用这些函数的函数放在第三个文件中。

 

转载于:https://www.cnblogs.com/mcyushao/p/9135412.html

你可能感兴趣的文章
hive报lzo Premature EOF from inputStream错误
查看>>
HDU 1232:流问题(并检查集合)
查看>>
Android动绘图标——I am not a gif maker,I am a developer
查看>>
csdn博客又開始更新了
查看>>
InstallShield12豪华版破解版下载|InstallShield下载|软件打包工具
查看>>
CentOs6系统安装mailx发邮件
查看>>
真心希望不会把这个博客荒了
查看>>
【NOIP2012普及组真题】 寻宝
查看>>
django2.2 关联表的必填on_delete参数的含义
查看>>
java循环map
查看>>
Split the Number(思维)
查看>>
linux中历史命令的一点发现
查看>>
获取多少万多少亿
查看>>
用threading和Queue模块实现多线程的端口扫描器
查看>>
团队编程项目作业5
查看>>
Java+大数+高精度
查看>>
jQuery Ajax 实例 ($.ajax、$.post、$.get)
查看>>
Spring MVC入门小例子
查看>>
ASP.NET没有魔法——ASP.NET MVC 路由的匹配与处理
查看>>
Rails 5 开发进阶
查看>>