aligned 变量属性(IBM 扩展)

使用 aligned 变量属性,您可以覆盖缺省内存对齐方式,以指定下列任何类型的变量的最小内存对齐值 (以字节数表示):
  • 非聚集变量
  • 聚集变量 (例如结构,类 或并集)
  • 所选成员变量
该属性通常用于增加给定变量的对齐。

对齐变量属性语法

读取语法图跳过可视语法图__attribute__(( aligned__aligned__ (阿利格门因素) ))
alignment_factor 是字节数,指定为求值为正次幂 2 的常量表达式。 您可以指定最大值为 268435456的值。 如果省略对齐因子及其括号,那么编译器将自动使用 16 字节。 如果指定大于最大值的对齐因子, 那么编译器将发出错误消息,并且编译失败

aligned 属性应用于 位字段结构中的成员变量时,属性规范将应用于位字段容器。 如果容器的缺省对齐大于对齐因子,那么将使用缺省对齐

示例

在以下示例中,结构 first_addresssecond_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.provfirst_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  ;