0

我在msdn中阅读了这篇文章,我想知道为什么有一个内部编译器堆栈持有对齐?我的意思是只有 5 个值可以设置为包装对齐,为什么要存储它们?甚至可以选择分配标识符。你为什么要那样做?只是好奇。

4

1 回答 1

1

标题。考虑以下 .cpp 文件:

#pragma pack(16)
#include <stdlib.h>

<stdlib.h>头定义了受 影响的类型#pragma pack,并且#pragma pack会破坏这些类型的定义,导致未定义的行为和难以诊断的运行时错误。

我们<stdlib.h>通过推送包装,将其重置为众所周知的包装,并在文件末尾弹出原始包装来防止这种情况。其他库和 SDK 的标头可以做类似的事情来防御这种情况。

于 2013-08-30T19:28:52.743 回答