编译器警告(等级 4)C4366

一元“operator”运算符的结果可能未对齐

如果由于打包而无法对齐结构成员,编译器将在该成员的地址分配给对齐指针时发出警告。 默认情况下,所有指针都对齐。

若要解析 C4366,请更改结构的对齐方式,或使用 __unaligned 关键字声明指针。

有关详细信息,请参阅 __unaligned 和

示例

下面的示例生成 C4366。

// C4366.cpp
// compile with: /W4 /c
// processor: IPF x64
#pragma pack(1)
struct X {
   short s1;
   int s2;
};

int main() {
   X x;
   short * ps1 = &x.s1;   // OK
   int * ps2 = &x.s2;   // C4366
}