#pragma align integer(variable [,variable...]) |
可使用 align使所列变量与 integer 字节内存对齐,并覆盖缺省值。请遵循以下限制:
integer 必须是介于 1 和 128 之间的 2 的幂,有效值包括 1、2、4、8、16、32、64 和 128。
variable 是全局或静态变量,但不能是局部变量或类成员变量。
如果指定的对齐比缺省小,就使用缺省。
Pragma 行必须显示在所涉及的变量的声明之前,否则该行被忽略。
在 pragma 行上涉及但不在下面 pragma 行的代码中声明的任何变量都被忽略。以下示例中的变量是正确声明的。
#pragma align 64 (aninteger, astring, astruct) int aninteger; static char astring[256]; struct S {int a; char *b;} astruct; |
#pragma align 在名称空间内部使用时,必须使用损坏名称。例如,以下代码中的 #pragma align 语句就是无效的。要更正此问题,应将 #pragma align 语句中的 a、b 和 c 替换为其损坏名称。
namespace foo { #pragma align 8 (a, b, c) static char a; static char b; static char c; } |