__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.
- 我的微信
- 这是我的微信扫一扫
-
- 我的微信小程序
- 我的微信小程序扫一扫
-
评论