展开全部
如果声明的变量的常规对齐边界小于 n,__align(n) 是非常有用的。32313133353236313431303231363533e78988e69d8331333433663039八字节对齐方式可以显著提高 VFP 指令的性能。可以将 __align 与 extern 和 static 一起使用。
由于 __align 是存储类修饰符,因此不能将其用于:类型,包括 typedef 和结构定义、函数参数。只能进行过对齐。也就是说,可以将两个字节的对象按 4 个字节对齐,而不能将 4 个字节的对象按两个字节对齐。
扩展资料
对齐的作用和原因:
各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问 一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐。
其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对 数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为32位系统)。
如果存放在偶地址开始的地方,那么一个读周期就可以读出这32bit,而如果存放在奇地址开始的地方,就需要2个读周期,并对两次读出的结果的高低字节进行拼凑才能得到该32bit数 据。显然在读取效率上下降很多。