-qalignrulefor(仅限 C++)

适用的调用

表 1. 接受给定选项的调用
选项 xlc (编译 C) xlC (编译 C++) xlclang(编译 C) xlclang++(编译 C++)
-qalignrulefor      
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表

类别

可移植性和迁移

等效编译指示

用途

-qalign=power 一起使用时,确定是否将 4 字节对齐上限应用于结构成员。 结构成员是类型为 typedef 的结构的非第一个成员,其元素类型的数组超过了对齐上限。

语法

读取语法图跳过可视语法图  -q alignrulefor = power = typedefrespectsrulenotypedefrespectsrule

缺省值

-qalignrulefor = power=typedef致规则

参数

typedef相互尊重的规则 | notypedef相互尊重的规则
typedef致规则 生效时,成员遵循 -qalign=power的正常对齐规则。 此子选项提供与使用具有 XL C++ V6.0 和更低版本的 -qalign=power 编译的代码的兼容性。

对于 XL C++ V9.0,缺省值为 typedef相当规则

notypedef致规则 生效时,超过 4 字节的对齐上限的成员将在 4 字节边界上对齐。 此子选项提供与使用 XL C++ V7.0 和 V8.0的 -qalign=power 编译的代码的兼容性。

预定义的宏

无。

示例

以下示例对包含 long long 类型的成员的结构数组使用 typedef 声明,该成员通常不受 4 字节对齐上限的限制,然后使用 typedef 作为结构变量声明的非第一个成员。 此表根据 -qalignrulefor=power 选项的设置显示不同的对齐结果。

样本代码 对齐结果
typedef致规则 Notypedef可观察规则
struct A {
long long a1;
} a;

typedef struct A ten_A [10];

struct B {
char dummy [116];
struct A ten_a [10];
} b;

struct C {
char dummy [116];
ten_A ten_a;
} c;
b.ten_a = 8
对齐 b = 8
对齐 c.ten_a = 8
对齐 c = 8
b.ten_a = 8
对齐 b = 8
对齐 c.ten_a = 4
对齐 c = 4

相关信息