每 种 C和 C++的 实 现 支 持 对 其 宿 主 机 或 操 作 系 统 唯 一 的 功 能 。 例 如 , 一 些 程 序 需要 精 确 控 制 超 出 数 据 所 在 的 储 存 空 间 , 或 着 控 制 特 定 函 数 接 受 参 数 的 方 式 。#pragma 指 示 使 每 个 编 译 程 序 在 保 留 C和 C++语 言 的 整 体 兼 容 性 时 提 供 不 同 机 器和 操 作 系 统 特 定 的 功 能 。 编 译 指 示 被 定 义 为 机 器 或 操 作 系 统 特 定 的 , 并 且 通 常 每种 编 译 程 序 是 不 同 的 。 语 法 : #pragma token_string “ token_string” 是 一 系 列 字 符 用 来 给 出 所 需 的 特 定 编 译 程 序 指 令 和 参 数 。数 字符 号 “ #” 必 须 是 包 含 编 译 指 令 的 行 中 第 一 个 非 空 白 字 符 ; 而 空 白 字 符 可 以 隔 开数 字 符 号 “ #” 和 关 键 字 “ pragma” 。 在 #pragma 后 面 , 写 任 何 翻 译 程 序 能 够 作为 预 处 理 符 号 分 析 的 文 本 。 #pragma 的 参 数 类 似 于宏扩展。 如 果编 译 程 序 发现 它不 认得一 个 编 译 指 示 , 它将给 出 一 个 警告, 可 是 编 译 会继续下去。 为 了提 供 新的 预 处 理 功 能 , 或 者为 编 译 程 序 提 供 由实 现 定 义 的 信息, 编 译 指 示 可以 用 在 一 个 条件语 句内。 C和 C++编 译 程 序 可 以 识别下列 编 译 程 序 指 令 。 alloc_text comment init_seg* optimize auto_inline component inline_depth pack bss_seg data_seg inline_recursion pointers_to_members* check_stack function intrinsic setlocale code_seg hdrstop message vtordisp* const_seg include_alias once warning *仅用 于C++编 译 程 序 。 1 alloc_text #pragma alloc_text( "textsection", function1, ... ) 命名特 别定 义 的 函 数 驻留 的 代码段。该编 译 指 示 必 须 出 现 在 函 数 说明符 和 函 数 定义 之间 。 alloc_text编 译 指 示 不 处 理 C++成员函 数 或 重载函 数 ...