【问题标题】:‘structure was padded due to alignment specifier’ VS warning'结构由于对齐说明符而被填充'VS警告
【发布时间】:2021-05-10 16:38:23
【问题描述】:

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

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

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

【问题讨论】:

标签: c++ visual-studio warnings memory-alignment


【解决方案1】:

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

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

struct alignas(256) A
{
};

这个警告可以忽略吗?

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

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

【讨论】:

  • 没有成员的类只是为了简化示例。
猜你喜欢
  • 2018-03-04
  • 1970-01-01
  • 2016-09-10
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-18
  • 2011-10-19
相关资源
最近更新 更多