【发布时间】:2015-03-31 16:55:27
【问题描述】:
在windows.h 文件中有以下几行:
#ifndef __WINDOWS_DONT_DISABLE_PRAGMA_PACK_WARNING__
#pragma warning(disable:4103)
#endif
我发现在重新排序一些包含文件后我们有编译指示包警告。对齐错误的风险似乎很严重。为什么微软要禁用此警告?
【问题讨论】:
-
问微软?它是他们的标题。
-
包含
Windows.h是您出于必要而做的事情。如果可能,最好避免。出于诸如此类的原因。 -
或者定义
__WINDOWS_DONT_DISABLE_PRAGMA_PACK_WARNING__。 -
通常需要使 PshPackx.h 和 PopPack.h #include 文件在不产生 1 级警告的情况下正常工作。它们在 SDK 标头中得到了很多使用。专注于就您要解决的问题提出问题,而不是问“为什么 X 做了 Y”。
-
@Chad:你可以定义
WIN32_LEAN_AND_MEAN来避免这些。但是你不能避免包括 windows.h
标签: c++ c windows memory-alignment