10.07.2015 Views

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MPLAB ® <strong>C30</strong> 用 户 指 南MPLAB <strong>C30</strong> 可 以 采 用 非 邻 近 的 方 式 分 配 复 数 自 动 变 量 , 甚 至 可 以 将 实 部 分 配 到 寄 存 器中 , 而 将 虚 部 分 配 到 堆 栈 中 , 反 之 亦 然 。 调 试 信 息 格 式 无 法 表 示 这 种 非 邻 近 的 分 配 ,所 以 MPLAB <strong>C30</strong> 把 非 邻 近 的 复 数 变 量 描 述 为 两 个 独 立 的 非 复 数 类 型 变 量 。 如 果 实 际变 量 名 是 foo, 那 么 两 个 假 设 变 量 命 名 为 foo$real 和 foo$imag。2.3.6 双 字 整 型MPLAB <strong>C30</strong> 支 持 长 度 为 long int 两 倍 的 整 型 数 据 类 型 。 对 于 有 符 号 整 型 , 写 longlong int, 而 对 于 无 符 号 整 型 , 使 用 unsigned long long int。 可 以 通 过 在 整 型上 添 加 后 缀 LL 得 到 long long int 类 型 的 整 型 常 量 , 在 整 数 上 添 加 后 缀 ULL 得 到unsigned long long int 类 型 的 整 型 常 量 。可 以 在 算 术 运 算 中 像 使 用 其 他 整 型 一 样 使 用 这 些 类 型 。 这 些 数 据 类 型 的 加 、 减 和 位 逻辑 布 尔 运 算 是 开 放 源 代 码 的 , 但 是 , 这 些 数 据 类 型 的 除 法 与 移 位 不 是 开 放 源 代 码 的 。这 些 不 开 放 源 代 码 的 运 算 要 使 用 MPLAB <strong>C30</strong> 自 带 的 特 殊 库 函 数 。2.3.7 用 typeof 引 用 类 型引 用 表 达 式 类 型 的 另 一 种 方 法 是 使 用 typeof 关 键 字 。 使 用 这 个 关 键 字 的 语 法 与sizeof 相 似 , 但 是 其 结 构 在 语 义 上 类 似 于 用 typedef 定 义 的 类 型 名 。有 两 种 方 法 写 typeof 的 参 数 : 使 用 表 达 式 或 者 使 用 类 型 。 以 下 为 使 用 表 达 式 的 例子 :typeof (x[0](1))这 里 假 设 x 是 函 数 数 组 , 描 述 的 类 型 就 是 函 数 值 的 类 型 。以 下 为 使 用 类 型 名 作 为 参 数 的 例 子 :typeof (int *)这 里 , 描 述 的 类 型 是 指 向 int 的 指 针 。如 果 写 一 个 包 含 在 ANSI C 程 序 中 时 必 须 有 效 的 头 文 件 , 要 使 用 __typeof__, 而 不要 使 用 typeof。typeof 结 构 可 用 于 可 使 用 typedef 名 的 任 何 地 方 。 例 如 , 可 以 在 声 明 和 强 制 类 型 转换 中 , 或 者 sizeof 或 typeof 的 内 部 使 用 它 。• 用 x 指 向 的 类 型 声 明 y:typeof (*x) y;• 将 y 声 明 为 这 种 值 的 数 组 :typeof (*x) y[4];• 将 y 声 明 为 指 向 字 符 的 指 针 数 组 :typeof (typeof (char *)[4]) y;它 等 同 于 如 下 的 传 统 C 声 明 :char *y[4];为 了 弄 清 楚 typeof 声 明 的 含 义 , 以 及 为 什 么 是 有 用 的 方 法 , 我 们 用 以 下 宏 改 写 它 :#define pointer(T) typeof(T *)#define array(T, N) typeof(T [N])现 在 声 明 可 以 这 样 改 写 :array (pointer (char), 4) y;这 样 , array (pointer (char), 4) 是 指 向 char 的 四 个 指 针 的 数 组 类 型 。DS51284C_CN 第 26 页© 2005 Microchip Technology Inc.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!