2.1.97. --pointer_alignment=num

此选项指定应用程序所需的未对齐指针支持。

语法


--pointer_alignment=num

其中 num 是下列值之一:

1

将经由指针的访问视为具有对齐方式 1,即字节对齐或未对齐。

2

将经由指针的访问视为具有不超过 2 的对齐方式,即最多半字对齐。

4

将经由指针的访问视为有不超过 4 的对齐方式,即最多字对齐。

8

经由指针的访问具有常规对齐,即最多双字对齐。

用法

此选项可在不需要对齐的情况下,帮助移植为体系结构编写的源代码。 使用 __packed 限定符可更精细地控制对未对齐数据的访问,并且对所生成代码的质量影响较小。

限制

即使在支持未对齐访问的 CPU 上,不对齐指针也可能增加代码大小。 这是因为只有加载和存储指令的子集才会从未对齐访问支持中受益。 编译器不能直接对未对齐内存对象使用多字传送或协处理器内存传送,包括硬件浮点加载和存储。

Note

  • 当对不具备未对齐访问的硬件支持的 CPU(如 v6 以前版本的体系结构)进行编译时,代码大小可能会显著增加。

  • 此选项既不影响对象在内存中的放置,也不影响结构的布局与填充。

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential