10.07.2015 Views

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MPLAB <strong>C30</strong> 与 ANSI C 的 差 别aligned (alignment)该 属 性 为 变 量 指 定 最 小 的 对 齐 方 式 , 用 字 节 表 示 。 对 齐 方 式 必 须 是 2 的 次 幂 。 例 如 ,下 面 的 声 明 :int x __attribute__ ((aligned (16))) = 0;使 编 译 器 按 照 16 字 节 分 配 全 局 变 量 x。 对 于 dsPIC 器 件 , 这 可 以 与 访 问 需 要 对 齐 的操 作 数 的 DSP 指 令 和 寻 址 模 式 的 asm 语 句 配 合 使 用 。在 前 面 的 例 子 中 , 我 们 可 以 显 式 地 指 定 我 们 希 望 编 译 器 对 给 定 变 量 使 用 的 对 齐 方 式( 用 字 节 表 示 )。 或 者 , 我 们 可 以 省 略 对 齐 方 式 , 而 要 求 编 译 器 为 变 量 使 用 dsPIC 器 件的 最 大 有 用 对 齐 。 例 如 , 我 们 可 以 这 样 写 :short array[3] __attribute__ ((aligned));当 省 略 了 对 齐 属 性 说 明 中 的 对 齐 方 式 时 , 编 译 器 会 自 动 将 已 声 明 变 量 的 对 齐 方 式 设 置为 目 标 单 片 机 任 何 数 据 类 型 所 使 用 的 最 大 对 齐 方 式 。 在 dsPIC 器 件 中 , 为 双 字 节 (1个 字 )。aligned 属 性 只 能 增 大 对 齐 ; 但 可 以 通 过 指 定 packed 属 性 来 减 小 对 齐 ( 见 下 文 )。aligned 属 性 与 reverse 属 性 冲 突 , 同 时 指 定 两 者 会 产 生 错 误 。deprecateddeprecated 属 性 使 得 包 含 这 一 属 性 的 声 明 能 被 编 译 器 特 别 识 别 到 。 当 使 用deprecated 函 数 或 变 量 时 , 编 译 器 会 发 出 警 告 。deprecated 定 义 仍 将 被 编 译 器 执 行 , 并 被 反 映 到 目 标 文 件 中 。 例 如 , 编 译 以 下 程 序 :int __attribute__((__deprecated__)) i;int main() {return i;}将 产 生 警 告 :deprecated.c:4: warning: `i' is deprecated (declaredat deprecated.c:1)在 生 成 的 目 标 文 件 中 , 仍 以 通 常 的 方 式 定 义 了 i。farfar 属 性 告 知 编 译 器 不 必 将 变 量 分 配 到 near( 前 8 KB) 数 据 空 间 中 ( 即 变 量 可 以 分 配到 数 据 存 储 器 中 的 任 何 地 址 )。© 2005 Microchip Technology Inc. DS51284C_CN 第 13 页

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

Saved successfully!

Ooh no, something went wrong!