提问人:Fedor 提问时间:5/9/2021 更新时间:5/10/2021 访问量:935
“由于对齐说明符,结构被填充”VS 警告
‘structure was padded due to alignment specifier’ VS warning
问:
如果在 Visual Studio 中,我指定类或结构的对齐方式,例如
struct __declspec(align(256)) A
{
};
我收到 4 级警告,如下所示“警告 C4324:”A“:由于对齐说明符,结构已填充”。 我是否以某种方式错误地指定了对齐方式,或者可以安全地忽略此警告?
答:
3赞
eerorika
5/9/2021
#1
我是否以某种方式错误地指定了对齐方式
不,尽管您使用的是语言扩展。这可能是不必要的,因为有一个标准语法会更可取:
struct alignas(256) A
{
};
这个警告可以安全地忽略吗?
是的,忽略此警告是安全的,除非您认为填充是一个问题。
但是,我建议问问自己:为什么当一个班级没有成员时,你需要对齐它?
评论
2赞
Fedor
5/10/2021
没有成员的类只是为了简化示例。
评论