首页 > 解决方案 > '结构因对齐说明符而被填充'VS警告

问题描述

如果在 Visual Studio 中我为类或结构指定对齐方式,例如

struct __declspec(align(256)) A
{
};

我收到如下 4 级警告“警告 C4324:'A':由于对齐说明符而填充了结构”。我是否以某种方式错误地指定了对齐方式,或者这个警告可以安全地忽略?

标签: c++visual-studiowarningsmemory-alignment

解决方案


我是否以某种方式错误地指定对齐方式

不,尽管您使用的是语言扩展。这可能是不必要的,因为有一个更可取的标准语法:

struct alignas(256) A
{
};

这个警告可以忽略吗?

是的,忽略此警告是安全的,除非您有理由认为填充是一个问题。

但是,我建议你问问自己:当一个没有成员的类时,为什么你需要一个类来对齐?


推荐阅读