Copyright © 2007-2009 ARM Limited. All rights reserved.
ARM DUI 0348BC (ID090708)
RealView
®
编译工具
4.0 版
编译器参考指南
ii Copyright © 2007-2009 ARM Limited. All rights reserved. ARM DUI 0348BC
Non-Confidential
,
Unrestricted Access ID090708
RealView 编译工具
编译器参考指南
Copyright © 2007-2009 ARM Limited. All rights reserved.
版本信息
本手册进行了以下更改。
所有权声明
除非本所有权声明在下面另有说明,否则带有
®
或
™
标记的词语和徽标是 ARM
®
Limited 在欧盟和其
他国家/地区的注册商标或商标。此处提及的其他品牌和名称可能是其各自所有者的商标。
除非事先得到版权所有人的书面许可,否则不得以任何形式修改或复制本文档包含的部分或全部信
息以及产品说明。
本文档描述的产品还将不断发展和完善。 ARM Limited 将如实提供本文档所述产品的所有特性及其
使用方法。但是,所有暗示或明示的担保,包括但不限于对特定用途适销性或适用性的担保,均不
包括在内。
本文档的目的仅在于帮助读者使用产品。对于因使用本文档中的任何信息、文档信息出现任何错误
或遗漏或者错误使用产品造成的任何损失或损害, ARM 公司概不负责。
使用 ARM 一词时,它表示 “ARM 或其任何相应的子公司”。
保密状态
本文档的内容是非保密的。 根据 ARM 与 ARM 将本文档交予的参与方的协议条款,使用、复制和
公开本文档内容的权利可能会受到许可限制的制约。
受限访问是一种 ARM 内部分类。
产品状态
本文档的信息是开发的产品的最新信息。
网址
http://www.arm.com
更改历史记录
日期
发行
号
保密性 变更
2007 年 3 月
A
非保密 RealView Development Suite v3.1 3.1 版
2008 年 9 月
B
非保密 RealView Development Suite v4.0 4.0 版
2009 年 1 月 23 日
B
非保密 RealView Development Suite 4.0 版的文档更新
2009 年 3 月 2 日
B
非保密 RealView Development Suite 4.0 版的文档更新 2
ARM DUI 0348BC Copyright © 2007-2009 ARM Limited. All rights reserved. iii
ID7/8/09 Non-Confidential, Unrestricted Access
目录
RealView 编译工具
编译器参考指南
前言
关于本手册 ..................................................................................................... vi
反馈 ................................................................................................................ x
第 1 章简介
1.1 关于 ARM 编译器 ........................................................................................ 1-2
1.2 源语言模式 .................................................................................................. 1-3
1.3 语言扩展和语言遵从性 ................................................................................ 1-5
1.4 C 和 C++ 库 ................................................................................................ 1-7
第 2 章 编译器命令行选项
2.1 命令行选项 .................................................................................................. 2-2
第 3 章 语言扩展
3.1 预处理器扩展 .............................................................................................. 3-2
3.2 C90 中提供的 C99 语言功能 ....................................................................... 3-4
3.3 C++ 和 C90 中提供的 C99 语言功能 ........................................................... 3-6
3.4 标准 C 语言扩展 .......................................................................................... 3-9
3.5 标准 C++ 语言扩展 .................................................................................... 3-14
3.6 标准 C 和标准 C++ 语言扩展 .................................................................... 3-18
iv Copyright © 2007-2009 ARM Limited. All rights reserved. ARM DUI 0348BC
Non-Confidential, Unrestricted Access ID7/8/09
3.7 GNU 语言扩展 .......................................................................................... 3-23
第 4 章 编译器特有的功能
4.1 关键字和运算符 .......................................................................................... 4-2
4.2 __declspec 属性 ....................................................................................... 4-24
4.3 函数属性 ................................................................................................... 4-31
4.4 类型属性 ................................................................................................... 4-42
4.5 变量属性 ................................................................................................... 4-46
4.6 编译指示 ................................................................................................... 4-55
4.7 指令内在函数 ............................................................................................ 4-71
4.8 VFP 状态内在函数 .................................................................................. 4-111
4.9 GNU 内置函数 ........................................................................................ 4-112
4.10 编译器预定义 .......................................................................................... 4-115
第 5 章 C 和 C++ 实现细节
5.1 C 和 C++ 实现细节 ..................................................................................... 5-2
5.2 C++ 实现细节 ........................................................................................... 5-13
附录 Avia 文件语法
A.1 via 文件概述 ................................................................................................ A-2
A.2 语法 ............................................................................................................ A-3
附录 B 标准 C 实现定义
B.1 实现定义 ..................................................................................................... B-2
B.2 被视为 ISO C 标准未定义的行为 ................................................................ B-9
附录 C 标准 C++ 实现定义
C.1 整型转换 ..................................................................................................... C-2
C.2 调用纯虚函数 .............................................................................................. C-3
C.3 主要的语言支持特性 ................................................................................... C-4
C.4 标准 C++ 库实现定义 .................................................................................. C-5
附录 DC 和 C++ 编译器实现限制
D.1 C++ ISO/IEC 标准限制 ............................................................................... D-2
D.2 整数限制 ..................................................................................................... D-4
D.3 浮点数限制 .................................................................................................. D-5
附录 E 使用 NEON 支持
E.1 简介 ............................................................................................................ E-2
E.2 向量数据类型 .............................................................................................. E-3
E.3 内在函数 ..................................................................................................... E-4