您的位置:首页 > 编程语言 > C语言/C++

c++ primer plus 第9章 内存模型和名称空间

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


   c ++的 存 储 方 案 决 定 了 变 量 保 留 在 内 存 中 的 时 间 ( 储 存 持 续 性 ) 以 及 程序 的 哪 一 部 分 可 以 访 问 它 ( 作 用 域 和 链 接 性 ) 。 自 动 变 量 是 在 代 码 块 ( 如 函 数 体 或 函 数 体 中的 代 码 块 ) 中 定 义 的 变 量 , 仅 当 程 序 执 行 到 包 含 定 义 的 代 码 块 时 , 它 们 才 存 在 , 并 且 可 见 。自 动 变 量 可 以 通 过 使 用 存 储
类 型 说 明 符 register 或 根 本 不 使 用


说明 符 来 声 明 , 没 有 使 用 说 明 符 时 , 变 量 将 默 认 为 自 动 的 。 register 说明 符 提 示 编 译 器 , 该 变 量 的 使 用 频 率 很 高 , 但 C++11摒 弃 了 这 种 用法 。


   静态 变 量 在 整 个 程 序 执 行 期 间 都 存 在 。 对 于 在 函 数 外 面 定 义 的 变 量 , 其 所 属 文 件 中 位 于 该 变 量的 定 义 后 面 的 所 有 函 数 都 可 以 使 用 它 ( 文 件 作 用 域 ) , 并 可 在 程 序 的 其 他 文 件 中 使 用 ( 外 部链 接 性 ) 。 另 一 个 文 件 要 使 用 这 种 变 量 , 必 须 使 用 extern 关 键 字来 声 明 它 。 对 于 文 件 间 共 享 的 变
量 , 应 在 一 个 文 件 中 包 含 其 定 义


声叨 ( 无 需 使 用 extern , 但 如 果 同 时 进 行 初 始 化 , 也 可 使 用 它 ) ,并 在 其 他 文 件 中 包 含 引 用 声 明 ( 使 用 extern 不 初 始 化 ) 。 在 函 数的 外 面 使 用 关 键 字 static 定 义 的 变 量 的 作 用 域 为 整 个 文 件 , 但 是不 能 用 于 其 他 文 件 ( 内 部 链 接 性 ) 。 在 代 码 块 中 使 用 关 键 字 static 定义 的 变 量 被 限 制 在 该
代 码 块 内 ( 局 部 作 用 域 、 无 链 接 性 ) , 但 在 整 个 程 序 执 行 期 间 , 它 都 一直 存 在 并 且 保 持 原 值 。


   在默 认 情 况 下 , c + + 函 数 的 链 接 性 为 外 部 , 因 此 可 在 文 件 间 共 享: 但 使 用 关 键 字 static 限 定 的 函 数 的 链 接 性 为 内 部 的 , 被 限 制 在定 义 它 的 文 件 中 。


   动态 内 存 分 配 和 释 放 是 使 用 new 和 delete 进行 的 , 它 使 用 自 由 存 储 区 或 堆 来 存 储 数 据 。 调 用 new 占 用 内 存 ,而 调 用 delete 释 放 内 存 。 程 序 使 用 指 针 来 跟 踪 这 些 内 存 单 元 。


   名称 空 间 允 许 定 义 一 个 可 在 其 中 声 明 标 识 符 的 命 名 区 域 。 这 样 做 的 目 的 是 减 少 名 称 冲 突 , 尤 其当 程 序 非 常 大 , 并 使 用 多 个 厂 商 的 代 码 时 。 可 以 通 过 使 用 作 用 域 解 析 运 算 符 、 using 声 明 或 using 编 译 指 令 , 来 使 名 称 空间 中 的 标 识 符 可 用 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: