aligned 变量属性(IBM 扩展)
使用
aligned 变量属性,您可以覆盖缺省内存对齐方式,以指定下列任何类型的变量的最小内存对齐值 (以字节数表示):- 非聚集变量
- 聚集变量 (例如结构,类 或并集)
- 所选成员变量
alignment_factor 是字节数,指定为求值为正次幂 2 的常量表达式。 您可以指定最大值为 268435456的值。 如果省略对齐因子及其括号,那么编译器将自动使用 16 字节。 如果指定大于最大值的对齐因子, 那么编译器将发出错误消息,并且编译失败。
将 aligned 属性应用于 位字段结构中的成员变量时,属性规范将应用于位字段容器。 如果容器的缺省对齐大于对齐因子,那么将使用缺省对齐。
示例
在以下示例中,结构
first_address 和 second_address 设置为 16 字节的对齐方式:struct address {
int street_no;
char *street_name;
char *city;
char *prov;
char *postal_code;
} first_address __attribute__((__aligned__(16))) ;
struct address second_address __attribute__((__aligned__(16))) ;在以下示例中,仅将成员
first_address.prov 和 first_address.postal_code 设置为 16 字节的对齐方式:struct address {
int street_no;
char *street_name;
char *city;
char *prov __attribute__((__aligned__(16))) ;
char *postal_code __attribute__((__aligned__(16))) ;
} first_address ;
