C 和 C++ 实 现 细 节然 而 , 如 果 使 用 -cpp 和 --c90 选 项 编 译 C 或 C++, 则 会 生 成 错 误 。压 缩 结 构压 缩 结 构 是 一 种 结 构 对 齐 边 界 和 内 部 字 段 对 齐 边 界 始 终 为 1 的 结 构 。可 以 使 用 __packed 限 定 符 压 缩 特 定 结 构 。 或 者 , 也 可 以 使 用 #pragma pack(n) 确 保压 缩 任 何 包 含 未 对 齐 数 据 的 结 构 。 无 法 使 用 命 令 行 选 项 更 改 结 构 的 缺 省 压 缩 方式 。位 域在 非 压 缩 结 构 中 , <strong>ARM</strong> 编 译 器 在 容 器 中 分 配 位 域 。 容 器 是 已 声 明 类 型 的 正 确对 齐 的 对 象 。分 配 位 域 时 , 应 确 保 指 定 的 第 一 个 字 段 占 用 字 的 最 低 地 址 位 , 具 体 取 决 于 配置 :小 端 最 低 地 址 为 最 低 有 效 位 。大 端 最 低 地 址 为 最 高 有 效 位 。位 域 容 器 可 以 是 任 何 整 型 。注 意在 严 格 1990 ISO 标 准 C 中 , 只 允 许 将 int、 signed int 和 unsigned int 类 型 用 于位 域 。 对 于 非 int 位 域 , 编 译 器 会 显 示 错 误 。没 有 使 用 signed 或 unsigned 限 定 符 声 明 的 普 通 位 域 按 unsigned 处 理 。 例 如 ,intx:10 分 配 10 位 无 符 号 整 数 。位 域 将 分 配 给 第 一 个 具 有 足 够 未 分 配 位 数 的 正 确 类 型 的 容 器 , 例 如 :struct X{int x:10;int y:20;};第 一 个 声 明 创 建 一 个 整 数 容 器 , 并 为 x 分 配 10 位 。 在 第 二 个 声 明 中 , 编 译 器 查找 具 有 足 够 未 分 配 位 数 的 现 有 整 数 容 器 , 并 在 与 x 相 同 的 容 器 中 分 配 y。位 域 完 全 包 含 在 其 容 器 中 。 如 果 无 法 将 位 域 放 入 某 个 容 器 中 , 则 会 将 其 放 在 下一 个 相 同 类 型 的 容 器 中 。 例 如 , 如 果 为 结 构 声 明 了 其 他 位 域 , z 声 明 将 溢 出 容器 :5-10 Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0348BCNon-Confidential, Unrestricted AccessID090708
C 和 C++ 实 现 细 节struct X{int x:10;int y:20;int z:5;};编 译 器 填 充 第 一 个 容 器 的 剩 余 两 位 , 并 为 z 分 配 一 个 新 的 整 数 容 器 。位 域 容 器 可 以 相 互 重 叠 , 例 如 :struct X{int x:10;char y:2;};第 一 个 声 明 创 建 一 个 整 数 容 器 , 并 为 x 分 配 10 位 。 这 10 位 占 用 该 整 数 容 器 的 第1 个 字 节 以 及 第 2 个 字 节 的 两 位 。 在 第 二 个 声 明 中 , 编 译 器 检 查 char 类 型 的 容器 。 由 于 没 有 适 合 的 容 器 , 因 此 , 编 译 器 分 配 一 个 正 确 对 齐 的 新 char 容 器 。由 于 char 的 自 然 对 齐 边 界 为 1, 因 此 , 编 译 器 搜 索 包 含 足 够 未 分 配 位 数 的 第 一个 字 节 , 以 便 完 全 包 含 该 位 域 。 在 示 例 结 构 中 , int 容 器 的 第 二 个 字 节 为 x 分 配了 两 位 , 有 六 位 没 有 分 配 。 编 译 器 分 配 一 个 char 容 器 ( 从 前 一 个 int 容 器 的 第二 个 字 节 开 始 ), 跳 过 分 配 给 x 的 前 两 位 , 然 后 为 y 分 配 两 位 。如 果 将 y 声 明 为 char y:8, 则 编 译 器 填 充 第 二 个 字 节 , 然 后 为 第 三 个 字 节 分 配 一个 新 的 char 容 器 , 因 为 位 域 不 能 溢 出 其 容 器 。 图 5-2 显 示 了 以 下 示 例 结 构 的 位域 分 配 情 况 :struct X{int x:10;char y:8;};Bit number31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0unallocatedypaddingx图 5-2 位 域 分 配 1注 意相 同 的 基 本 规 则 适 用 于 具 有 不 同 容 器 类 型 的 位 域 声 明 。 例 如 , 要 为 示 例 结 构 添加 int 位 域 , 请 使 用 以 下 代 码 :<strong>ARM</strong> DUI 0348BC Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. 5-11ID090708Non-Confidential, Unrestricted Access
- Page 1 and 2:
®RealView编 译 工 具4.0 版编
- Page 3 and 4:
目 录RealView 编 译 工 具编
- Page 5 and 6:
前 言本 前 言 介 绍 了 《R
- Page 7 and 8:
前 言附 录 B 标 准 C 实 现
- Page 9 and 10:
前 言其 他 出 版 物以 下
- Page 11 and 12:
第 1 章简 介本 章 介 绍 随
- Page 13 and 14:
简 介1.2 源 语 言 模 式ARM
- Page 15 and 16:
简 介1.3 语 言 扩 展 和 语
- Page 17 and 18:
简 介1.4 C 和 C++ 库RVCT 提
- Page 19 and 20:
第 2 章编 译 器 命 令 行
- Page 21 and 22:
编 译 器 命 令 行 选 项2.1.
- Page 23 and 24:
编 译 器 命 令 行 选 项/fpi
- Page 25 and 26:
编 译 器 命 令 行 选 项/rwp
- Page 27 and 28:
编 译 器 命 令 行 选 项从
- Page 29 and 30:
编 译 器 命 令 行 选 项•
- Page 31 and 32:
编 译 器 命 令 行 选 项2.1.
- Page 33 and 34:
编 译 器 命 令 行 选 项另
- Page 35 and 36:
编 译 器 命 令 行 选 项另
- Page 37 and 38:
编 译 器 命 令 行 选 项2.1.
- Page 39 and 40:
编 译 器 命 令 行 选 项示
- Page 41 and 42:
编 译 器 命 令 行 选 项缺
- Page 43 and 44:
编 译 器 命 令 行 选 项•
- Page 45 and 46:
编 译 器 命 令 行 选 项2.1.
- Page 47 and 48:
编 译 器 命 令 行 选 项•
- Page 49 and 50:
编 译 器 命 令 行 选 项如
- Page 51 and 52:
编 译 器 命 令 行 选 项•
- Page 53 and 54:
编 译 器 命 令 行 选 项2.1.
- Page 55 and 56:
编 译 器 命 令 行 选 项另
- Page 57 and 58:
编 译 器 命 令 行 选 项另
- Page 59 and 60:
编 译 器 命 令 行 选 项示
- Page 61 and 62:
编 译 器 命 令 行 选 项2.1.
- Page 63 and 64:
编 译 器 命 令 行 选 项2.1.
- Page 65 and 66:
编 译 器 命 令 行 选 项其
- Page 67 and 68:
编 译 器 命 令 行 选 项用
- Page 69 and 70:
编 译 器 命 令 行 选 项2.1.
- Page 71 and 72:
编 译 器 命 令 行 选 项语
- Page 73 and 74:
编 译 器 命 令 行 选 项用
- Page 75 and 76:
编 译 器 命 令 行 选 项•
- Page 77 and 78:
编 译 器 命 令 行 选 项2.1.
- Page 79 and 80:
编 译 器 命 令 行 选 项•
- Page 81 and 82:
编 译 器 命 令 行 选 项soft
- Page 83 and 84:
编 译 器 命 令 行 选 项声
- Page 85 and 86:
编 译 器 命 令 行 选 项2.1.
- Page 87 and 88:
编 译 器 命 令 行 选 项2.1.
- Page 89 and 90:
编 译 器 命 令 行 选 项2.1.
- Page 91 and 92:
编 译 器 命 令 行 选 项2.1.
- Page 93 and 94:
编 译 器 命 令 行 选 项2.1.
- Page 95 and 96:
编 译 器 命 令 行 选 项另
- Page 97 and 98:
编 译 器 命 令 行 选 项示
- Page 99 and 100:
编 译 器 命 令 行 选 项用
- Page 101 and 102:
编 译 器 命 令 行 选 项•
- Page 103 and 104:
编 译 器 命 令 行 选 项2.1.
- Page 105 and 106:
编 译 器 命 令 行 选 项如
- Page 107 and 108:
编 译 器 命 令 行 选 项另
- Page 109 and 110:
编 译 器 命 令 行 选 项缺
- Page 111 and 112:
编 译 器 命 令 行 选 项语
- Page 113 and 114:
编 译 器 命 令 行 选 项此
- Page 115 and 116:
编 译 器 命 令 行 选 项2.1.
- Page 117 and 118:
编 译 器 命 令 行 选 项另
- Page 119 and 120:
编 译 器 命 令 行 选 项2.1.
- Page 121 and 122:
编 译 器 命 令 行 选 项注
- Page 123 and 124:
编 译 器 命 令 行 选 项另
- Page 125 and 126:
编 译 器 命 令 行 选 项模
- Page 127 and 128:
编 译 器 命 令 行 选 项另
- Page 129 and 130:
编 译 器 命 令 行 选 项2.1.
- Page 131 and 132:
编 译 器 命 令 行 选 项2.1.
- Page 133 and 134:
编 译 器 命 令 行 选 项—
- Page 135 and 136:
编 译 器 命 令 行 选 项示
- Page 137 and 138:
编 译 器 命 令 行 选 项2.1.
- Page 139 and 140:
编 译 器 命 令 行 选 项2.1.
- Page 141 and 142:
编 译 器 命 令 行 选 项另
- Page 143 and 144:
编 译 器 命 令 行 选 项2.1.
- Page 145 and 146:
编 译 器 命 令 行 选 项错
- Page 147 and 148:
编 译 器 命 令 行 选 项缺
- Page 149 and 150:
编 译 器 命 令 行 选 项另
- Page 151 and 152:
编 译 器 命 令 行 选 项2.1.
- Page 153 and 154:
第 3 章语 言 扩 展本 章 介
- Page 155 and 156:
语 言 扩 展注 意此 预 处
- Page 157 and 158:
语 言 扩 展{}return Subscriptin
- Page 159 and 160:
语 言 扩 展3.3.2 long longARM
- Page 161 and 162:
语 言 扩 展3.4 标 准 C 语
- Page 163 and 164:
语 言 扩 展• 可 以 分 配
- Page 165 and 166:
语 言 扩 展3.4.7 外 部 实
- Page 167 and 168:
语 言 扩 展示 例class B;class
- Page 169 and 170:
语 言 扩 展3.5.6 非 成 员
- Page 171 and 172:
语 言 扩 展3.6.3 匿 名 类
- Page 173 and 174:
语 言 扩 展int Incomplete_Enums
- Page 175 and 176:
语 言 扩 展3.7 GNU 语 言 扩
- Page 177 and 178:
语 言 扩 展}u = (foo_t) b ; //
- Page 179 and 180:
语 言 扩 展• 可 以 使 用
- Page 181 and 182:
语 言 扩 展模 式仅 在 C90
- Page 183 and 184:
第 4 章编 译 器 特 有 的
- Page 185 and 186:
编 译 器 特 有 的 功 能用
- Page 187 and 188:
编 译 器 特 有 的 功 能__AL
- Page 189 and 190:
编 译 器 特 有 的 功 能4.1.
- Page 191 and 192:
编 译 器 特 有 的 功 能示
- Page 193 and 194:
编 译 器 特 有 的 功 能另
- Page 195 and 196:
编 译 器 特 有 的 功 能} Y;
- Page 197 and 198:
编 译 器 特 有 的 功 能语
- Page 199 and 200:
编 译 器 特 有 的 功 能示
- Page 201 and 202:
编 译 器 特 有 的 功 能其
- Page 203 and 204:
编 译 器 特 有 的 功 能4.1.
- Page 205 and 206:
编 译 器 特 有 的 功 能4.1.
- Page 207 and 208:
编 译 器 特 有 的 功 能如
- Page 209 and 210:
编 译 器 特 有 的 功 能示
- Page 211 and 212:
编 译 器 特 有 的 功 能{}S
- Page 213 and 214:
编 译 器 特 有 的 功 能4.3
- Page 215 and 216:
编 译 器 特 有 的 功 能4.3.
- Page 217 and 218:
编 译 器 特 有 的 功 能4.3.
- Page 219 and 220:
编 译 器 特 有 的 功 能另
- Page 221 and 222:
编 译 器 特 有 的 功 能4.3.
- Page 223 and 224:
编 译 器 特 有 的 功 能另
- Page 225 and 226:
编 译 器 特 有 的 功 能void
- Page 227 and 228:
编 译 器 特 有 的 功 能使
- Page 229 and 230:
编 译 器 特 有 的 功 能4.5.
- Page 231 and 232:
编 译 器 特 有 的 功 能4.5.
- Page 233 and 234:
编 译 器 特 有 的 功 能long
- Page 235 and 236:
编 译 器 特 有 的 功 能注
- Page 237 and 238:
编 译 器 特 有 的 功 能4.6
- Page 239 and 240:
编 译 器 特 有 的 功 能有
- Page 241 and 242:
编 译 器 特 有 的 功 能•
- Page 243 and 244:
编 译 器 特 有 的 功 能4.6.
- Page 245 and 246:
编 译 器 特 有 的 功 能micr
- Page 247 and 248:
编 译 器 特 有 的 功 能4.6.
- Page 249 and 250:
编 译 器 特 有 的 功 能4.6.
- Page 251 and 252:
编 译 器 特 有 的 功 能}{}f
- Page 253 and 254:
编 译 器 特 有 的 功 能4.7
- Page 255 and 256:
编 译 器 特 有 的 功 能opco
- Page 257 and 258:
编 译 器 特 有 的 功 能另
- Page 259 and 260:
编 译 器 特 有 的 功 能4.7.
- Page 261 and 262:
编 译 器 特 有 的 功 能4.7.
- Page 263 and 264: 编 译 器 特 有 的 功 能其
- Page 265 and 266: 编 译 器 特 有 的 功 能LDRB
- Page 267 and 268: 编 译 器 特 有 的 功 能另
- Page 269 and 270: 编 译 器 特 有 的 功 能4.7.
- Page 271 and 272: 编 译 器 特 有 的 功 能4.7.
- Page 273 and 274: 编 译 器 特 有 的 功 能另
- Page 275 and 276: 编 译 器 特 有 的 功 能另
- Page 277 and 278: 编 译 器 特 有 的 功 能其
- Page 279 and 280: 编 译 器 特 有 的 功 能另
- Page 281 and 282: 编 译 器 特 有 的 功 能示
- Page 283 and 284: 编 译 器 特 有 的 功 能其
- Page 285 and 286: 编 译 器 特 有 的 功 能另
- Page 287 and 288: 编 译 器 特 有 的 功 能4.7.
- Page 289 and 290: 编 译 器 特 有 的 功 能4.7.
- Page 291 and 292: 编 译 器 特 有 的 功 能表
- Page 293 and 294: 编 译 器 特 有 的 功 能4.8
- Page 295 and 296: 编 译 器 特 有 的 功 能__bu
- Page 297 and 298: 编 译 器 特 有 的 功 能4.10
- Page 299 and 300: 编 译 器 特 有 的 功 能表
- Page 301 and 302: 编 译 器 特 有 的 功 能表
- Page 303 and 304: 编 译 器 特 有 的 功 能表
- Page 305 and 306: 第 5 章C 和 C++ 实 现 细 节
- Page 307 and 308: C 和 C++ 实 现 细 节• 表 5-
- Page 309 and 310: C 和 C++ 实 现 细 节整 数整
- Page 311 and 312: C 和 C++ 实 现 细 节注 意适
- Page 313: C 和 C++ 实 现 细 节字 段
- Page 317 and 318: C 和 C++ 实 现 细 节5.2 C++
- Page 319 and 320: C 和 C++ 实 现 细 节注 意可
- Page 321 and 322: C 和 C++ 实 现 细 节与 自
- Page 323 and 324: 附 录 Avia 文 件 语 法本 附
- Page 325 and 326: via 文 件 语 法A.2 语 法via
- Page 327 and 328: 附 录 B标 准 C 实 现 定 义
- Page 329 and 330: 标 准 C 实 现 定 义B.1.1转
- Page 331 and 332: 标 准 C 实 现 定 义>& file将
- Page 333 and 334: 标 准 C 实 现 定 义B.1.11表
- Page 335 and 336: 标 准 C 实 现 定 义B.2 被
- Page 337 and 338: 附 录 C标 准 C++ 实 现 定
- Page 339 and 340: 标 准 C++ 实 现 定 义C.2 调
- Page 341 and 342: 标 准 C++ 实 现 定 义C.4 标
- Page 343 and 344: 附 录 DC 和 C++ 编 译 器 实
- Page 345 and 346: C 和 C++ 编 译 器 实 现 限
- Page 347 and 348: C 和 C++ 编 译 器 实 现 限
- Page 349 and 350: 附 录 E使 用 NEON 支 持本
- Page 351 and 352: 使 用 NEON 支 持E.2 向 量 数
- Page 353 and 354: 使 用 NEON 支 持E.3.1加 法以
- Page 355 and 356: 使 用 NEON 支 持向 量 饱 和
- Page 357 and 358: 使 用 NEON 支 持int8x16_t vmlsq
- Page 359 and 360: 使 用 NEON 支 持向 量 宽 型
- Page 361 and 362: 使 用 NEON 支 持uint32x2_t vcge
- Page 363 and 364: 使 用 NEON 支 持uint16x8_t vtst
- Page 365 and 366:
使 用 NEON 支 持uint16x8_t vmin
- Page 367 and 368:
使 用 NEON 支 持int8x16_t vshlq
- Page 369 and 370:
使 用 NEON 支 持uint8x8_t vshl_
- Page 371 and 372:
使 用 NEON 支 持uint16x8_t vqsh
- Page 373 and 374:
使 用 NEON 支 持向 量 左 移
- Page 375 and 376:
使 用 NEON 支 持// VLD1.16 {d0[
- Page 377 and 378:
使 用 NEON 支 持void vst1q_u16(
- Page 379 and 380:
使 用 NEON 支 持E.3.15加 载
- Page 381 and 382:
使 用 NEON 支 持// VLD4.8 {d0,
- Page 383 and 384:
使 用 NEON 支 持// VLD1.64 {d0,
- Page 385 and 386:
使 用 NEON 支 持lane);// VLD3.8
- Page 387 and 388:
使 用 NEON 支 持// VST1.64 {d0,
- Page 389 and 390:
使 用 NEON 支 持// VST4.16 {d0,
- Page 391 and 392:
使 用 NEON 支 持// VST4.16 {d0[
- Page 393 and 394:
使 用 NEON 支 持uint16x4_t vcre
- Page 395 and 396:
使 用 NEON 支 持uint64x2_t vcom
- Page 397 and 398:
使 用 NEON 支 持向 量 饱 和
- Page 399 and 400:
使 用 NEON 支 持// VMLS.I16 q0,
- Page 401 and 402:
使 用 NEON 支 持向 量 与 标
- Page 403 and 404:
使 用 NEON 支 持int8x16_t vrev6
- Page 405 and 406:
使 用 NEON 支 持计 算 设 置
- Page 407 and 408:
使 用 NEON 支 持int16x8_t veorq
- Page 409 and 410:
使 用 NEON 支 持uint16x8x2_t vt