编译器警告(等级 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
}
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈