头文件

常包含的内容

1.函数原型

2.#define或const定义的常量

3.结构声明

4.类声明

5.模板声明

6.内联函数

包含头文件时, #include使用<> 还是 “”的区别

<>: 文件系统中查找,一般是标准的头文件

“”: 在当前工作目录或源代码目录,一般是自己写的头文件。

延伸到预处理器  #ifndef 和#endif的操作

#ifndef    AAAAA

#define  AAAAA

#endif

从存储持续性、作用域、链接性来描述分析。

1.函数参数、变量:存储持续性是自动、作用域为局部,没有链接性。存放在栈上,栈是先进后出。可使用空间小,效率快。

2.静态持续变量:有外部链接性(可在其他文件访问,在代码外声明,不用加static,延伸到全局变量)、内部连接性(只能在当前文件访问,在代码外声明,要加static)、无链接性(只能在当前函数访问,在代码内声明,加static)。生命周期都是在整个程序执行期间存在。有固定的位置静态变量区存储静态变量。静态变量默认初始化为0.

外部链接性:即是全局变量:存储持续性为静态,作用域为整个文件。

在每个使用全局变量的文件中,声明它。可以多次声明,引用声明不分配存储空间。如extern int a ;

全局变量只能定义一次。定义意味着给变量分配存储空间 .int a = 1;

内部链接性:即是static变量,作用域为整个文件。

无链接性:在函数代码中使用static,作用域是当前代码段,声明周期也是整个程序,程序只在启动时进行一次静态局部变量初始化,以后再调用时,不会再初始化。

名称空间

1.namespace 声明

如  namespace  jack

{

int a ;

void  func();

struct BB{};

}

2.使用 using namespace jack;

一般在读写流文件用到

#include<iostream>

using namespace std;

c++ primer plus 内存模型和名称空间相关推荐

  1. 《C++ Primer Plus》读书笔记之七—内存模型和名称空间

    第九章 内存模型和名称空间 1.不要将函数定义或者变量声明放到头文件中. 2.头文件常包含的内容:函数原型.使用#define或者const定义的常量.结构声明.类声明.模板声明.内联函数. 3.避免 ...

  2. C++ Primer Plus学习(九)——内存模型和名称空间

    内存模型和名称空间 单独编译 存储持续性.作用域和链接性 名称空间 单独编译 程序一般可以分为三部分: 头文件:包含结构声明和使用这些结构的函数的原型: 源代码文件:包含与结构有关的函数的代码: 源代 ...

  3. 2020 我的C++的学习之路 第九章 内存模型与名称空间

    以C++ Primer Plus为参考书籍,自身归纳知识点,加深记忆. 内存模型与名称空间 存储持续性 作用域与链接 自动存储持续性 静态持续变量 静态持续性.外部链接性 静态持续性.内部链接性 静态 ...

  4. 【C++ Primer Plus】第9章 内存模型和名称空间

    9.1 多文件程序 一个文件(头文件)包含了用户定义类型的定义:另一个文件包含操纵用户定义类型的函数的代码.这两个文件组成了一个软件包,可用于各种程序中. 头文件中常包含的内容: 函数原型. 使用#d ...

  5. static在内存层面的作用_「C++ Primer plus 心得」9.内存模型和名称空间

    本章内容包括: 单独编译 存储持续性.作用域和链接性 定位new运算符 名称空间 C++ 为在内存中存储数据方面提供了多种选择.可以厅数据保留在内存中的时间长度(存储持续性)以及程序的哪一部分可以访问 ...

  6. C++ Primer Plus 第九章答案 内存模型和名称空间

    9.5复习题 //1 homer将自动成为自动变量 在一个文件中将secret定义为外部变量,并在第二个文件中使用extern声明它 在外部定义前加上关键字static,将topsecret定义为一个 ...

  7. C++(学习笔记)内存模型和名称空间

    文章目录 前言 一.单独编译 二.存储持续性.作用域.链接性 1.作用域和链接 2.静态持续变量 3.静态持续性.外部链接性 4.静态持续性.内部链接性 5.静态持续性.无链接性 6.const全局变 ...

  8. 第9章 内存模型和名称空间

    待定 本章内容:  单独编译  存储持续性.作用域和链接性  定位(placement)new运算符  名称空间 9.1 单独编译 9.2 存储持续性.作用域和链接性 9.2.4 静态持续性. ...

  9. 【C++】C++PrimerPlus(第6版)中文版 第9章 内存模型和名称空间 编程练习 参考答案

    自己编写的参考答案,在VS2019中都可以编译通过,不是标准答案,也不是最优答案,仅供参考 1.下面是一个头文件 //golf.h – for pr9-1.cpp const int Len = 40 ...

  10. C++11 Primer Plus(三)之名称空间与类

    自己写的C++11 Primer Plus 学习笔记,如有雷同不胜荣幸,如有错误敬请指正 1. 内存模型与名称空间 1. 单独编译(程序划分) 友好的程序代码结构: 头文件:包含结构声明和使用这些结构 ...

最新文章

  1. [翻译] ASP.NET Core 2.2 正式版发布
  2. Vue3 插槽使用详解
  3. 【采集读写】基于matlab语音采集与读写【含Matlab源码 538期】
  4. Python设计模式:建造者模式
  5. LaTex软件安装方式
  6. 计算机无法读光盘,win10系统无法读取光盘如何解决 win10系统读取光盘失败的解决方法...
  7. sketch如何做设计稿交互_sketch 交互原型制作方法
  8. 软件测试1 软件测试分类
  9. js 数据类型思维导图
  10. 单片机无线通信学习笔记
  11. BI报表工具FineReport的使用2【帆软聚合报表设计,最常用功能】
  12. 学习Java第一天笔记
  13. Java期末考试题(附答案)
  14. c调用python第三方库_c/c++调用python程序且含tensorflow第三方库
  15. send sendto ,recv recvfrom有什么区别
  16. 系统找不到zlib.dll文件的解决方法。zlib编译和使用
  17. htc 8x android,htc8x怎么样 htc8x测评【图解】
  18. 在centos7中基于nginx-rtmp模块的mp4播放
  19. 华尔街人必读40本金融佳作
  20. 计算机一级wps office选择题技巧,计算机一级WPSoffice考前练习题和答案

热门文章

  1. CDOJ 1330 柱爷与远古法阵(高斯消元)
  2. 恩施州推进大数据监督检查工作规范化常态化
  3. spark学习5(hbase集群搭建)
  4. LeetCode OJ:Maximal Rectangle(最大矩形)
  5. 关于空间分析的一点小思考
  6. Java中this、super的用法(2)
  7. centos8 默认nginx路径_centos8自定义目录安装nginx(教程详解)
  8. java native方法_深入理解Java虚拟机
  9. winform读写config文件
  10. access数据库指定日期查询