__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.参阅:ARM手册