__align用法

来源:互联网 发布:linux yum snmp 安装 编辑:程序博客网 时间:2024/05/20 16:36

__align

__align 关键字指示编译器在 n 字节边界上对齐变量。

__align 是一个存储类修饰符。它不影响函数的类型。

语法

__align(n)

其中:

n

是对齐边界。

对于局部变量,n 值可为 1、2、4 或 8。

对于全局变量,n 可以具有最大为 2 的 0x80000000 次幂的任何值。

__align 关键字紧靠变量名称前面放置。

用法

如果声明的变量的常规对齐边界小于 n__align(n) 是非常有用的。八字节对齐方式可以显著提高 VFP 指令的性能。

可以将 __alignexternstatic 一起使用。

限制

由于 __align 是存储类修饰符,因此不能将其用于:

  • 类型,包括 typedef 和结构定义

  • 函数参数。

只能进行过对齐。也就是说,可以将两个字节的对象按 4 个字节对齐,而不能将 4 个字节的对象按两个字节对齐。

示例

__align(8) char buffer[128];  // buffer starts on eight-byte boundary
void foo(void){    ...    __align(16) int i; // this alignment value is not permitted for                       // a local variable    ...}__align(16) int i; // permitted as a global variable.
原创粉丝点击