内存对齐,关于__align(n)的解析

https://blog.csdn.net/qq_33658067/article/details/77192069

__align

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

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

语法
__align(
n
)

其中:

n
是对齐边界。

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

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

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

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

可以将 __align 与 extern 和 static 一起使用。

限制
由于 __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.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值